linux下修改内核参数进行Tcp性能调优 -- 高并发 /etc/sysctl.conf
fs.file-max
在/etc/security/limits.conf最后增加:
* soft nofile 65535
* hard nofile 65535 文件
* soft nproc 65535
* hard nproc 65535 进程
ulimit 命令本身就有分软硬设置,加-H 就是硬,加-S 就是软默认显示的是软限制
soft限制指的是当前系统生效的设置值。hard限制值可以被普通用户降低。但是不能增加。 soft 限制不能设置的比hard 限制更高。 只有root用户才能够增加 hard 限制值。
net.core.wmem_default = 8388608
net.core.rmem_default = 8388608
net.core.rmem_max=16777216
net.core.wmem_max=16777216
net.ipv4.tcp_timestamps=0
net.ipv4.tcp_synack_retries=1
net.ipv4.tcp_syn_retries=0
net.ipv4.tcp_mem=94500000 915000000 927000000
net.ipv4.tcp_max_orphans=3276800
net.ipv4.tcp_max_syn_backlog=8192
net.ipv4.ip_local_port_range=1024 65535
net.ipv4.tcp_syncookies=1 开启SYN Cookies,当出现SYN等待队列溢出时,启用cookies来处理
net.ipv4.tcp_keepalive_time=100
net.ipv4.tcp_tw_reuse=1 修改此参数,允许重用处于time_wait的socket 默认为0,1表示开启
net.ipv4.tcp_tw_recycle=1 参数表示快速回收处于time_wait的socket 默认为0,1表示开启
net.ipv4.tcp_fin_timeout=10 修改time_wait状的存在时间,默认的2MSL
net.ipv4.tcp_max_tw_buckets=20000 默认是180000 所允许存在time_wait状态的最大数值,超过则立刻被清楚并且警告
net.ipv4.ip_local_port_range=1024 65000 允许系统打开的端口范围。 表示对外连接的端口范围。
net.core.somaxconn=32768 somaxconn参数决定Accept队列长度,在listen函数调用时backlog参数即决定Accept队列的长度,该参数太小也会限制最大并发连接数,因为同一时间完成3次握手的连接数量太小,server处理连接速度也就越慢。服务器端调用accept函数实际上就是从已连接Accept队列中取走完成三次握手的连接。 Accept队列和Syn队列是listen函数完成创建维护的。 /proc/sys/net/core/somaxconn修改
kernel.perf_event_paranoid=2
网友评论