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=16384Changing 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. Hope it helps.
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.
[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