Linux 伺服器狀態分析
分析伺服器的狀態,其中常用命令如下:
vmstat:用以檢測CPU和記憶體情況
iostat:用於檢測磁碟狀態
netstat:用於檢測頻寬狀態
CPU:
我們在使用vmstat命令時%user和%sys體現CPU的狀態,分別代表CPU處在使用者模式下的時間百分比和系統模式下的時間百分比。一般情況下,%user+%sys<70%認為是CPU處於較為理想狀態,當%user+%sys在70-90之間就已經是比較危險了,如果兩者之和超過90%時基本就可以認為CPU存在較大瓶頸。
記憶體:
對於記憶體佔用,一般有一個經驗公式:應用程式可用記憶體/系統實體記憶體>70%時,表示系統記憶體資源非常充足,不影響系統性能,應用程式可用記憶體/系統實體記憶體<20%時,表示系統記憶體資源緊缺,需要增加系統記憶體,20%<應用程式可用記憶體/系統實體記憶體<70%時,表示系統記憶體資源基本能滿足應用需求,暫時不影響系統性能。
硬碟:
我們使用iostat命令時,可以看到 Blk_read/s表示每秒讀取的資料塊數,Blk_wrtn/s表示每秒寫入的資料塊數,Blk_read表示讀取的所有塊數,Blk_wrtn表示寫入的所有塊數。其中,如果Blk_read/s和Blk_wrtn/s都一直很高,代表伺服器對於硬碟的讀寫操作過於頻繁,應該對其進行優化。
網路:
當使用netstat –i命令時,我們就可以監控到各網絡卡的聯網情況和資料傳輸量,如果你發現你進行壓測時,QPS一直上不去但是CPU,記憶體都很問題,那就可以使用這個命令來檢測一下資料傳輸量是否已經超出頻寬限制了。
響應速度:
顧名思義代表著每個請求的介面響應時間,如果伺服器處理速度太慢可能就不滿足一些需求,這個需要根據不同的功能進行評估。
丟包率:
該值的評估標準也隨著需求的不同而存在變化,例如交易系統一定要保證沒有一個丟包,但是如果是音樂或者視訊播放可能就沒有這麼高的要求,存在0.1%以下的丟包率即可。