《查看LINUX服務器性能負載的常用工具和nginx問題的排查方法》要點:
本文介紹了查看LINUX服務器性能負載的常用工具和nginx問題的排查方法,希望對您有用。如果有疑問,可以聯系我們。
下面對查看服務器性能負載的常用工具做簡單介紹,詳細的工具使用請另行查閱。
a)uptime
用于觀察服務器整體負載,系統負載指運行隊列(1分鐘、5分鐘、15分鐘前)的平均長度, 正常情況需要小于cpu個數。
b)vmstat
vmstat是Virtual Meomory Statistics(虛擬內存統計)的縮寫,可對操作系統的虛擬內存、進程、CPU活動進行監控。他是對系統的整體情況進行統計,通常使用vmstat 5 5(表示每隔5秒生成一次數據,生成五次)命令測試。將得到一個數據匯總他能夠反映真正的系統情況。
c)top
top命令是最流行Unix/Linux的性能工具之一。系統管理員可用運行top命令監視進程和Linux整體性能。
a)free
Linux下的free命令,可以用于查看當前系統內存的使用情況,它顯示系統中剩余及已用的物理內存和交換內存,以及共享內存和被核心使用的緩沖區。
b)netstat
Netstat是控制臺命令,是一個監控TCP/IP網絡的非常有用的工具,它可以顯示路由表、實際的網絡連接以及每一個網絡接口設備的狀態信息。Netstat用于顯示與IP、TCP、UDP和ICMP協議相關的統計數據,一般用于檢驗本機各端口的網絡連接情況。
c)sar
sar(System Activity Reporter系統活動情況報告)是目前 Linux 上最為全面的系統性能分析工具之一,可以從多方面對系統的活動進行報告,包括:文件的讀寫情況、系統調用的使用情況、磁盤I/O、CPU效率、內存使用狀況、進程活動及IPC有關的活動等。本文主要以CentOS 6.3 x64系統為例,介紹sar命令。
a)iostat
Linux下的iostat命令,可用于報告中央處理器(CPU)統計信息和整個系統、適配器、tty 設備、磁盤和 CD-ROM 的輸入/輸出統計信息。
當出現直接超時、處理返回慢時的報警時,nigix側的故障排查參考方法有如下: 1、檢查請求日志情況, tail -f logs/access.log ,看upstream_status字段。
200:表示正常;
502/503/504:表示處理慢,或者后端down機;再看upstream_response_time返回的時間是否真的較慢,有沒有上百毫秒,或更高的,有則說明是后端服務有問題。
404:表示請求的路徑不存在或不對,文件不在了。需要檢查你配置在公眾平臺上的url路徑是否正確; 服務器上的文件、程序是否存在。
403:表示無權限訪問。 檢查一下nginx.conf 是否有特殊的訪問配置。
499: 則是客戶端的問題,請聯系微信團隊。 此錯誤少見。
2、檢查錯誤日志情況,tail -f logs/error_log ,查看是否有connect() failed、Connection refused、 Connection reset by peer等error錯誤日志,有則說明有可能nginx出現的連接數超負載等情況。
(1)查看系統的網絡連接數情況確認是否有較大的鏈接數
# netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
解析:
CLOSED //無連接是活動的或正在進行 LISTEN //服務器在等待進入呼叫 SYN_RECV //一個連接請求已經到達,等待確認 SYN_SENT //應用已經開始,打開一個連接 ESTABLISHED //正常數據傳輸狀態/當前并發連接數 FIN_WAIT1 //應用說它已經完成 FIN_WAIT2 //另一邊已同意釋放 ITMED_WAIT //等待所有分組死掉 CLOSING //兩邊同時嘗試關閉 TIME_WAIT //另一邊已初始化一個釋放 LAST_ACK //等待所有分組死掉
(2)查看系統的句柄配置情況,ulimit -n ,確認是否過小(小于請求數)
(3)worker_rlimit_nofile、worker_connections配置項,是否過小(小于請求數)