粗糙記錄網站加載過慢的一次排查經歷
阿新 • • 發佈:2018-05-30
TIME_WAIT redis 優化可以參考一下鏈接:
http://blog.51cto.com/leven/382097
2018/05/29
今天上班,程序員和我說測試環境的站點打開很慢,讓我排查一下。作為菜鳥,還是首次遇到這樣的問題,於是使用top查看系統資源,以CPU和內存分別排序查看,情況如下圖:
從負載上看
load average: 0.51, 0.98, 1.12
並無異常,這裏說明一下服務器使用的是阿裏雲ECS,2vCPU4G。且看%CPU比例,用戶態和系統態的CPU使用率並不高,可以暫且排除病毒侵入的情況。在使用netstat -tnl
查看是否存在異常開啟的端口。
[www@izuf64awewxccxye80z ~]$ netstat -tnl Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:8081 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:888 0.0.0.0:* LISTEN tcp 0 0 127.0.0.1:32000 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:42914 0.0.0.0:* LISTEN tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN tcp6 0 0 :::46710 :::* LISTEN
從端口上看並未開啟異常端口,於是查看阿裏雲監控數據,如下:
從以上3張監控圖發現CPU使用率在某一時刻急劇上升,磁盤讀寫量增加,網絡流量增加,TCP連接數增加。由於測試環境的域名是不對外使用的,只有公司內部技術人員使用,於是查看是否存在TIME_WAIT狀態過多,導致TCP連接過慢。
[www@izuf64awewxccxye80z ~]$ netstat -an |grep TIME_WAIT ...... tcp 0 0 192.168.100.171:36234 192.168.100.172:3306 TIME_WAIT tcp 0 0 192.168.100.171:48108 192.168.100.170:6379 TIME_WAIT tcp 0 0 192.168.100.171:48016 192.168.100.170:6379 TIME_WAIT tcp 0 0 192.168.100.171:47966 192.168.100.170:6379 TIME_WAIT tcp 0 0 127.0.0.1:53384 127.0.0.1:8081 TIME_WAIT tcp 0 0 192.168.100.171:48082 192.168.100.170:6379 TIME_WAIT tcp 0 0 192.168.100.171:47930 192.168.100.170:6379 TIME_WAIT tcp 0 0 127.0.0.1:53566 127.0.0.1:8081 TIME_WAIT ......
從命令行查看,6379端口的
TIME_WAIT
數量較多,於是登陸阿裏雲Redis查看性能數據,發現在某些時段的QPS很高,高於生產環境的QPS,於是初步判斷問題出在Redis上。如圖:
再次進行統計6379端口的
TIME_WAIT
數量,發現居然有3萬多個......難怪網站打開慢了!!!最終解決:清空redis數據後,再重新加載網站正常。
註意:這裏使用的Redis只作為程序的緩存使用!!!網站訪問會優先從redis讀取數據!
[www@izuf64awewxccxye80z ~]$ netstat -an |grep TIME_WAIT|grep 6379|wc -l
31526
至於TIME_WAIT
http://blog.51cto.com/leven/382097
粗糙記錄網站加載過慢的一次排查經歷