一个java http服务器,错误日志里出现端口不够用的错误

time_wait 太高_time_wait

Telegraf的监控上也明显看到 TCP连接里的time_wait到了近40k了。默认Ubuntu的可用端口应该是:32768——61000

这些time_wait是还占着端口的呢

那就要降低这个time_wait的值:新加后面4行即可:

# sysctl -p

net.core.rmem_max = 52428800

net.core.wmem_max = 52428800

net.ipv4.tcp_syncookies = 1

net.ipv4.tcp_tw_reuse = 1

net.ipv4.tcp_tw_recycle = 1    #Ubuntu为16.04.6 LTS,高版本这个不用自己设置了。

net.ipv4.tcp_fin_timeout = 30

time_wait 太高_http_02

CPU使用率也明显降低了:

time_wait 太高_time_wait_03