IPC kernel parameter Enforced minimum setting kernel.shmmni (SHMMNI) 256 * <size of RAM in GB> kernel.shmmax (SHMMAX) <size of RAM in bytes>1 kernel.shmall (SHMALL) 2 * <size of RAM in the default system page size>2 kernel.sem (SEMMNI) 256 * <size of RAM in GB> kernel.sem (SEMMSL) 250 kernel.sem (SEMMNS) 256 000 kernel.sem (SEMOPM) 32 kernel.msgmni (MSGMNI) 1 024 * <size of RAM in GB> kernel.msgmax (MSGMAX) 65 536 kernel.msgmnb (MSGMNB) 65 536
#Example for a computer with 16GB of RAM: kernel.shmmni=4096 kernel.shmmax=17179869184 kernel.shmall=8388608 #kernel.sem=<SEMMSL> <SEMMNS> <SEMOPM> <SEMMNI> kernel.sem=250 1024000 32 4096 kernel.msgmni=16384 kernel.msgmax=65536 kernel.msgmnb=65536
Run sysctl with -p parameter to load in sysctl settings from the default file /etc/sysctl.conf:
vi /etc/sysctl.conf
1 file-max:这个参数表示进程可以同时打开的最大句柄数,这个参数直接限制最大并发连接数。 2 tcp_tw_reuse:这个参数设置为1,表示允许将TIME-WAIT状态的socket重新用于新的TCP链接。这个对服务器来说很有意义,因为服务器上总会有大量TIME-WAIT状态的连接。 3 tcp_keepalive_time:这个参数表示当keepalive启用时,TCP发送keepalive消息的频度。默认是7200 seconds,意思是如果某个TCP连接在idle 2小时后,内核才发起probe。若将其设置得小一点,可以更快地清理无效的连接。 4 tcp_fin_timeout:这个参数表示当服务器主动关闭连接时,socket保持在FIN-WAIT-2状态的最大时间。 5 tcp_max_tw_buckets:这个参数表示操作系统允许TIME_WAIT套接字数量的最大值,如果超过这个数字,TIME_WAIT套接字将立刻被清除并打印警告信息。默认是i180000,过多TIME_WAIT套接字会使Web服务器变慢。 6 tcp_max_syn_backlog:这个参数表示TCP三次握手建立阶段接受WYN请求队列的最大长度,默认1024,将其设置大一些可以使出现Nginx繁忙来不及accept新连接的情况时,Linux不至于丢失客户端发起的连接请求。 7 ip_local_port_range:这个参数定义了在UDP和TCP连接中本地端口的取值范围。 8 net.ipv4.tcp_rmem:这个参数定义了TCP接受缓存(用于TCP接收滑动窗口)的最小值,默认值,最大值。 9 net.ipv4.tcp_wmem:这个参数定义了TCP发送缓存(用于TCP发送滑动窗口)的最小值,默认值,最大值。 10 netdev_max_backlog:当网卡接收数据包的速度大于内核处理的速度时,会有一个队列保存这些数据包。这个参数表示该队列的最大值。 11 rmem_default:这个参数表示内核套接字接收缓存区默认的大小。 12 wmem_default:这个参数表示内核套接字发送缓存区默认的大小。 13 rmem_max:这个参数表示内核套接字接收缓存区默认的最大大小。 14 wmem_max:这个参数表示内核套接字发送缓存区默认的最大大小。