今早发现新增首页节点报错, 无法连接, 部分节点发现问题, 说明服务问题可能性不大, 于是想到是内核参数的问题. 果然由于是新增的节点, 没有对系统优化导致. 现在是发现问题过程记录一下:
1, 查看连接状态, 汇总一下
- netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
- CLOSE_WAIT 42
- ESTABLISHED 0
- TIME_WAIT 1006
2, 先优化内核参数
- vi /etc/sysctl.conf
- net.ipv4.tcp_syncookies = 1
- net.ipv4.tcp_tw_reuse=1 #让 TIME_WAIT 状态可以重用, 这样即使 TIME_WAIT 占满了所有端口, 也不会拒绝新的请求造成障碍 默认是 0
- net.ipv4.tcp_tw_recycle=1 #让 TIME_WAIT 尽快回收 默认 0
- net.ipv4.tcp_fin_timeout=30
- /sbin/sysctl -p #让参数生效
3, 重启相关 java 服务
虽然这是运维发现问题的常识, 但因为环境变化, 可能会忘记, 这里记录一下.
来源: http://www.bubuko.com/infodetail-3339817.html