Linux查看負載


負載(load)是linux機器的一個重要指標,直觀了反應了機器當前的狀態。如果機器負載過高,那么對機器的操作將難以進行。

Linux的負載高,主要是由於CPU使用、內存使用、IO消耗三部分構成。任意一項使用過多,都將導致服務器負載的急劇攀升。

查看服務器負載有多種命令,w或者uptime都可以直接展示負載,

$ uptime
 12:20:30 up 44 days, 21:46,  2 users,  load average: 8.99, 7.55, 5.40

$ w
 12:22:02 up 44 days, 21:48,  2 users,  load average: 3.96, 6.28, 5.16

load average分別對應於過去1分鍾,5分鍾,15分鍾的負載平均值。

這兩個命令只是單純的反映出負載,linux提供了更為強大,也更為實用的top命令來查看服務器負載。

 

$ top

top命令能夠清晰的展現出系統的狀態,而且它是實時的監控,按q退出。

 

Tasks行展示了目前的進程總數及所處狀態,要注意zombie,表示僵屍進程,不為0則表示有進程出現問題。

Cpu(s)行展示了當前CPU的狀態,us表示用戶進程占用CPU比例,sy表示內核進程占用CPU比例,id表示空閑CPU百分比,wa表示IO等待所占用的CPU時間的百分比。wa占用超過30%則表示IO壓力很大

Mem行展示了當前內存的狀態,total是總的內存大小,userd是已使用的,free是剩余的,buffers是目錄緩存。

Swap行同Mem行,cached表示緩存,用戶已打開的文件。如果Swap的used很高,則表示系統內存不足

 

在top命令下,按1,則可以展示出服務器有多少CPU,及每個CPU的使用情況

一般而言,服務器的合理負載是CPU核數*2。也就是說對於8核的CPU,負載在16以內表明機器運行很穩定流暢。如果負載超過16了,就說明服務器的運行有一定的壓力了。

在top命令下,按shift + "c",則將進程按照CPU使用率從大到小排序,按shift+"p",則將進程按照內存使用率從大到小排序,很容易能夠定位出哪些服務占用了較高的CPU和內存。

 

僅僅有top命令是不夠的,因為它僅能展示CPU和內存的使用情況,對於負載升高的另一重要原因——IO沒有清晰明確的展示。linux提供了iostat命令,可以了解io的開銷。

輸入iostat -x 1 10命令,表示開始監控輸入輸出狀態,-x表示顯示所有參數信息,1表示每隔1秒監控一次,10表示共監控10次。

沒有iostat命令的話  yum/apt-get install sysstat -y 即可

其中rsec/s表示讀入,wsec/s表示每秒寫入,這兩個參數某一個特別高的時候就表示磁盤IO有很大壓力,util表示IO使用率,如果接近100%,說明IO滿負荷運轉。 

 

總結:

(1)使用top命令查看負載,在top下按“1”查看CPU核心數量,shift+"c"按cpu使用率大小排序,shif+"p"按內存使用率高低排序;

(2)使用iostat -x 命令來監控io的輸入輸出是否過大

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

  1. 使用SSHClient客戶端連接到遠程Linux系統。使用top命令查看系統的當前運行的情況。如圖對top命令執行的結果做了簡單的圖解,下面針對每一項做詳細的解釋。

    linux怎樣使用top命令查看系統狀態
  2. top命令的第一行“top - 19:56:47 up 39 min,  3 users,  load average: 0.00, 0.00, 0.00”顯示的內容依次為“系統當前時間 、系統到目前為止已運行的時間、當前登錄系統的用戶數量、系統負載(任務隊列的平均長度)三個值分別為1分鍾、5分鍾、15分鍾前到現在的平均值【這三個一般會小於1,如果持續高於5,請仔細查看那個程序影響系統的運行】”

    linux怎樣使用top命令查看系統狀態
  3. top命令的第二行“Tasks: 120 total,   2 running, 118 sleeping,   0 stopped,   0 zombie”顯示的內容依次“所有啟動的進程數”、“正在運行的進程數”、“掛起的進程數”、“停止的進程數”、“僵屍進程數”。

    linux怎樣使用top命令查看系統狀態
  4. top命令的第三行“Cpu(s):  0.0%us,  0.0%sy,  0.0%ni,100.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st”顯示的內容依次為“用戶空間占用CPU百分比”、“內核空間占用CPU百分比”、“用戶空間內改變過優先級的進程占用CPU百分比”、“空閑CPU百分比”、“等待輸入輸出CPU時間百分比”、“CPU服務於硬件中斷所耗費的時間總額”、“CPU服務軟中斷所耗費的時間總額”、“Steal Time”

    linux怎樣使用top命令查看系統狀態
  5. top命令第四行“Mem:    508820k total,   480172k used,    28648k free,    41944k buffers”顯示內容依次為“物理內存總量”、“已使用的物理內存”、“空閑物理內存”、“內核緩存內存量”。

    linux怎樣使用top命令查看系統狀態
  6. top命令第5行“Swap:   392184k total,        0k used,   392184k free,   259152k cached”顯示內容依次為“交換區總量”、“已使用交互區總量”、“空閑交換區總量”、“緩沖的交換區總量”。

    linux怎樣使用top命令查看系統狀態
  7. top命令第5行“PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND ”顯示內容依次為“進程ID”、“進程所有者”、“優先級”、“nice值,負值表示高優先級,正值表示低優先級”、“進程使用的虛擬內存總量”、“進程使用的、未被換出的物理內存大小”、“共享內存大小”、“進程狀態”、“上次更新到現在的CPU時間占用百分比”、“進程使用的物理內存百分比”、“進程使用CPU總時間”、“命令名、命令行”。

    END

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM