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