liunx tcp 优化:
高并发socket/tcp网络最大连接数所受的限制问题,ulimit文件打开数,文件描述符_jalyzjs_51CTO博客
web服务器和cache服务器,高并发下,socket最大连接数限制调整: 默认是1024,完全不够。
1,修改用户进程可打开最大文件数限制。
即时生效:ulimit -n xxx
永久生效:
echo "ulimit -HSn 65536" >> /etc/rc.local
echo "ulimit -HSn 65536" >> /root/.bash_profile
ulimit -HSn 65536
查看最大文件数:
ulimit -n
文件和线程数量修改
vi /etc/security/limits.conf
#加入如下参数, 禁用内存交换必须设置的参数
#nofile文件数
#nproc 线程数
es soft nofile 65536
es hard nofile 65536
es soft nproc 4096
es hard nproc 4096
* hard memlock unlimited
* soft memlock unlimited
或者
* soft nofile 65536
* hard nofile 65536
* soft nproc 32000
* hard nproc 32000
* hard memlock unlimited
* soft memlock unlimited
服务端通知上面前因后果中有提到可以设置
/proc/sys/net/ipv4/tcp_synack_retries
重新进行几次进行第二次握手。但是这个阶段,client端可能会发数据包过来造成超时;另外,可以设置
/proc/sys/net/ipv4/tcp_abort_on_overflow=1
整个握手直接断掉,client端是closed状态,它会找其他established状态的连接进行数据包发送,不会造成超时。事实上,
tcp_abort_on_overflow=1是作为默认配置的。
tcp 优化
全局服务生效,但是如果当前用户登陆shell,优先登陆用户limits.conf配置,但是limits.conf配置如果超越sysctl.conf配置,则无效(只能往小,不能往大),系统后台服务不受limits.conf限制
vi /etc/sysctl.d/chris_tcp.conf
#TCP 协议栈网络参数
#并发连接 backlog 设置:
net.core.somaxconn = 2048
net.ipv4.tcp_max_syn_backlog = 16384
net.core.netdev_max_backlog = 20000
#TCP Socket 读写 Buffer 设置:
net.core.rmem_default = 262144
net.core.wmem_default = 262144
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
net.ipv4.tcp_rmem = 4096 4096 16777216 #'1024 4096 16777216'
net.ipv4.tcp_wmem = 4096 4096 16777216 #'1024 4096 16777216'
net.ipv4.tcp_mem = 786432 2097152 3145728 #'16777216 16777216 16777216'
#TCP 连接追踪设置:
net.nf_conntrack_max=1000000
net.netfilter.nf_conntrack_max=1000000
net.netfilter.nf_conntrack_tcp_timeout_time_wait=30
#FIN-WAIT-2 Socket 超时设置:
net.ipv4.tcp_fin_timeout = 15
#TIME-WAIT Socket 最大数量、回收与重用设置:
net.ipv4.tcp_max_tw_buckets=1048576
# 注意:不建议开启該设置,NAT 模式下可能引起连接 RST
#是否重用, 快速回收time-wait状态的tcp连接
#net.ipv4.tcp_tw_reuse = 1
#net.ipv4.tcp_tw_recycle = 1
#可处理最多孤儿socket数量,超过则警告,每个孤儿socket占用64KB空间
net.ipv4.tcp_max_orphans = 131072
#可分配端口 可用知名端口范围
net.ipv4.ip_local_port_range = 1024 65535
#系统级别最大打开文件
#百万并发服务器中常用的几个配置 , 注意一个正向连接要消耗2个tcp, 一个反向代理需要消耗4个tcp
fs.file-max = 2000000
#单用户进程最大文件打开数
fs.nr_open = 2000000
/sbin/sysctl -p 生效
tomcat 8优化:
【 Tomcat 】tomcat8.0 基本参数调优配置-----(2) - 请叫我老焦 - 博客园
Tomcat 8.0的并发优化 - 优化server.xml的配置 - 瘦风 - 博客园
优化后的jvm监控美如画: cpu使用率从百分之60降到百分之20, 内存使用率及回收也降了百分之40.