优化思路:
nginx响应请求
1:建立socket连接
2: 打开文件,并沿socket返回.
排查问题,也要注意观察这两点,
主要从系统的dmesg ,和nginx的error.log来观察
dmesg|tail
socket层面
# 查看最大连接数
more /proc/sys/net/core/somaxconn
# 改大
echo 50000 > /proc/sys/net/core/somaxconn
# 查看回收
cat /proc/sys/net/ipv4/tcp_tw_recycle
# 快速回收
echo 1 > /proc/sys/net/ipv4/tcp_tw_recycle
# 空TCP的回收利用
echo 1 > /proc/sys/net/ipv4/tcp_tw_reuse
# 查看洪水抵御
more /proc/sys/net/ipv4/tcp_syncookies
# 不做洪水抵御
echo 0 /proc/sys/net/ipv4/tcp_syncookies
将上述命令统一到sh脚本中
echo 50000 > /proc/sys/net/core/somaxconn
echo 1 > /proc/sys/net/ipv4/tcp_tw_recycle
echo 1 > /proc/sys/net/ipv4/tcp_tw_reuse
echo 0 > /proc/sys/net/ipv4/tcp_syn_cookies
增大nginx的connections数量
nginx – 加快tcp回收
高并发情况下 nginx配置 http 内应选择 keepalive_timeout 0;可以加快tcp的回收
文件层面
#查看可以打开的文件个数
ulimit -n
#修改可以打开的文件个数(修改为50000)
ulimit -n 50000
#配置Nginx worker进程最大打开文件数
worker_rlimit_nofile 65535; #添加的
# 增大客户端最大连接数(执行 ab压力测试的服务器 )
echo 50000 > /proc/sys/net/core/somaxconn