今天早上来公司,经过
WEB
访问公司内邮件服务器,很是慢,感受不妙,赶忙
SSH
登陆邮件服务器查看状况。原来不只
WEB
方式慢,
SSH
登陆也很慢,等了有半分钟,才登陆上去。邮件系统是运行在公司内一个虚拟机上,这个虚拟机的内存是
2G
,
CPU
:
Intel(R) Xeon(R) CPU 2.13GHz
,配置也不算过低。
我首先是经过
top
命令查看,发现机器负载很大。
top - 09:48:28 up 19:52, 2 users, load average: 43.28, 47.62, 45.01
Tasks: 1021 total, 90 running, 873 sleeping, 0 stopped, 58 zombie
Cpu(s): 26.6%us, 50.0%sy, 0.0%ni, 0.0%id, 0.0%wa, 7.2%hi, 16.2%si, 0.0%st
Mem: 2075604k total, 2008084k used, 67520k free, 109752k buffers
Swap: 2048276k total, 128k used, 2048148k free, 846412k cache
而后是查看
TCP
链接状况,发现大量的
TIME_WAIT.
命令:
netstat -an|awk '/^tcp/{++S[$NF]}END{for (i in S) print i,S[i]}'
LAST_ACK 2
LISTEN 12
CLOSE_WAIT 1
ESTABLISHED 454
FIN_WAIT1 39
FIN_WAIT2 21
CLOSING 4
TIME_WAIT 1091
SYN_SENT 216
同时,
/etc/sysctl.conf,
已经对网络进行了简单的优化。
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_fin_timeout = 30
根据以上状况,机器必定是存在着大量的链接。
iftop
查看了一下。果真,
59
段存在大量的链接,随便查了几个其中的
IP
,发现显示的是韩国
(
固然,这个不必定就真是来源于韩国
)
。
59.6.49.45
59.6.138.72
59.6.61.19
59.6.206.112
59.6.65.240
。。。。。。
针对如下状况进行临时处理,添加如下防火墙规则
:
# iptables -A INPUT -p tcp -i eth0 -s 59.0.0.0/8 --dport 80 -j DROP
# iptables -A INPUT -p tcp -i eth0 -s 59.0.0.0/8 --dport 25 -j DROP
时间不大一会,再次查看机器负载:
top – 09:55:44 up 21:38, 3 users, load average: 5.02, 3.27, 4.40
Tasks: 747 total, 8 running, 739 sleeping, 0 stopped, 0 zombie
Cpu(s): 1.3%us, 95.4%sy, 1.6%ni, 0.0%id, 0.0%wa, 0.7%hi, 1.0%si, 0.0%st
Mem: 2075604k total, 1836792k used, 238812k free, 127824k buffers
Swap: 2048276k total, 124k used, 2048152k free, 434456k cached
同时,
TIME_WAIT
值,也下降了不少。对于上边出现的问题,简单这么处理固然还不够,对
IP
段的封杀,不免会出现问题。所以,上边的处理只是对于突发问题的一种解决方式。对于更行之有效的方式,须要咱们在工做中进一步总结。