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:
# <domain> <type> <item> <value>
* 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.
[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
- 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/