# Sample config for 2 million web socket connection ```shell sysctl -w fs.file-max=12000500 sysctl -w fs.nr_open=20000500 # Set the maximum number of open file descriptors ulimit -n 20000000 # Set the memory size for TCP with minimum, default and maximum thresholds sysctl -w net.ipv4.tcp_mem='10000000 10000000 10000000' # Set the receive buffer for each TCP connection with minumum, default and maximum thresholds sysctl -w net.ipv4.tcp_rmem='1024 4096 16384' # Set the TCP send buffer space with minumum, default and maximum thresholds sysctl -w net.ipv4.tcp_wmem='1024 4096 16384' # The maximum socket receive buffer sizemem_max=16384 sysctl -w net.core.rmem_max=16384 # The maximum socket send buffer size sysctl -w net.core.wmem_max=16384 ``` Changing values through the ulimit command only applies to the current shell session, So if you want to set a new limit permanently, edit the /etc/security/limits.conf file and set your hard and soft limits. Here's an example: ``` # * soft nofile 20000 * hard nofile 20000 ``` Save the file, log-out, log-in again and test the configuration through the ulimit -n command. Keep the following in mind: Soft limit: value that the kernel enforces for the corresponding resource. Hard limit: works as a ceiling for the soft limit. Additional files in /etc/security/limits.d/ might affect what is configured in limits.conf. ### References [1] - https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/5/html/Tuning_and_Optimizing_Red_Hat_Enterprise_Linux_for_Oracle_9i_and_10g_Databases/sect-Oracle_9i_and_10g_Tuning_Guide-Adjusting_Network_Settings-Changing_Network_Kernel_Settings.html [2] - https://wwwx.cs.unc.edu/~sparkst/howto/network_tuning.php [3] - http://stackoverflow.com/questions/11342167/how-to-increase-ulimit-on-amazon-ec2-instance ### More Reading - http://docs.basho.com/riak/kv/2.2.1/using/performance/#optional-i-o-settings - http://docs.basho.com/riak/kv/2.2.1/using/performance/open-files-limit/#enable-pam-based-limits-for-centos-and-red-hat - http://docs.basho.com/riak/kv/2.2.1/using/performance/amazon-web-services/ - http://docs.basho.com/riak/kv/2.2.1/using/performance/erlang/ ### Talks - https://youtu.be/TneLO5TdW_M - https://www.slideshare.net/iXsystems/rick-reed-600-m-unsuspecting-freebsd-users