有个站点,我用ab做压测,结果ab总是返回错误,我做了如下的一些调优,最后正常了。
nginx的配置
.conf:
worker_processes 32;
worker_connections 65536;
过多的TIME_WAIT
在压力中,通过netstat发现很多TIME_WAIT的连接描述符:
netstat -n | awk '/^tcp/ {++state[$NF]} END {
for(key in state) print key,"\t",state[key]}'
ss -ant | awk 'NR>1 {++s[$1]} END {
for(k in s) print k,s[k]}'
一个网络连接断开

在进行压力测试时,遇到nginx配置问题和过多的TIME_WAIT连接导致的错误。通过调整nginx配置如worker_processes和worker_connections,以及优化Linux内核参数如tcp_tw_reuse和tcp_tw_recycle来复用和回收连接,解决了TIME_WAIT问题。同时,针对dmesg中显示的nf_conntrack表满问题,增加net.nf_conntrack_max和调整nf_conntrack_tcp_timeout_established参数,确保系统能有效处理连接。
最低0.47元/天 解锁文章
3563

被折叠的 条评论
为什么被折叠?



