郵件服務器突然很慢,原因探究與處理

今天早上來公司,通過WEB訪問公司內郵件服務器,非常慢,感覺不妙,趕緊SSH登錄郵件服務器查看情況。原來不僅WEB方式慢,SSH登錄也很慢,等了有半分鐘,才登錄上去。郵件系統是運行在公司內一個虛擬機上,這個虛擬機的內存是2GCPUIntel(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段的封殺,難免會出現問題。因此,上邊的處理只是對於突發問題的一種解決方式。對於更行之有效的方式,需要我們在工作中進一步總結。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章