1. 程式人生 > >【整合】【故障排查】LINUX系統資源使用情況排查(top、htop、ps、pstree)

【整合】【故障排查】LINUX系統資源使用情況排查(top、htop、ps、pstree)

 LINUX系統資源使用情況排查

     工作中我們常見的資源使用情況的排查包括,CPU使用情況、 記憶體使用情況、網路頻寬使用情況等等。而我們常用的工具有top、htop、ps、pstree等等,htop--top加強版, pstree—ps加強版.

 

ps與top的卻別與使用命令,參考:https://blog.csdn.net/timchen525/article/details/76364706


更多linux命令參考:runoob.com===>

 

     ====> TOP詳解

top -   00:59:07 up 2 days,  6:06,  1 user,  load average: 1.32, 1.32, 1.27
Tasks:    75 total,   1 running,  74 sleeping,  0 stopped,  0 zombie
%Cpu(s):  0.3 us,  0.0 sy, 99.7 ni,  0.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :  1882736 total,    84844 free,  1201756 used,   596136 buff/cache
KiB Swap:  1049596 total,  1049596 free,        0 used.   511944 avail Mem

top -   00:59:07 up 2 days,  6:06,  1 user,  load average: 1.32, 1.32, 1.27
當前系統時間 00:59:07  |  執行時間為2天6小時6分鐘  |  當前登入使用者為1個  |
1分鐘、5分鐘、15分鐘的負載情況為1.32、1.32、1.27 
(一般觀察5/15分鐘的情況,伺服器n核,那麼負載情況切莫大於n,若接近n則值得注意,大於n則急需排查;)

Tasks(任務/程序):    75 total,   1 running,  74 sleeping,  0 stopped,  0 zombie


有75個程序  |  1個執行態  |  74個休眠態  |  0個停止態  |  0個殭屍態(殭屍程序)
(殭屍程序:父程序已經退出,而該程序dead之後沒有程序接受,就成為殭屍程序.(zombie)程序)
(利用命令ps,可以看到有標記為Z的程序就是殭屍程序。)


%Cpu(s)(CPU):  0.3 us,  0.0 sy, 99.7 ni,  0.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
使用者佔用CPU-0.3  |  系統佔用CPU-0.0  |   改變過優先順序的程序佔用CPU-99.7  |   空閒CPU-0.0  |  IO等待佔用CPU-0.0  | 
硬中斷佔用CPU-0.0 軟中斷佔用CPU-0.0   


KiB Mem(記憶體) :  1882736 total,    84844 free,  1201756 used,   596136 buff/cache
記憶體總量-1882736k  |  剩餘-84844k  |  使用-1201756k  |   快取總量-596136k


KiB Swap(交換分割槽):  1049596 total,  1049596 free,        0 used.   511944 avail Mem
總量-1049596k   |   空閒量...   |  使用量...  |   緩衝的交換區量...

      

PID        USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND
PID — 程序id
USER — 程序所有者
PR — 程序優先順序
NI — nice值。負值表示高優先順序,正值表示低優先順序
VIRT — 程序使用的虛擬記憶體總量,單位kb。VIRT=SWAP+RES
RES — 程序使用的、未被換出的實體記憶體大小,單位kb。RES=CODE+DATA
SHR — 共享記憶體大小,單位kb
S — 程序狀態。D=不可中斷的睡眠狀態 R=執行 S=睡眠 T=跟蹤/停止 Z=殭屍程序
%CPU — 上次更新到現在的CPU時間佔用百分比
%MEM — 程序使用的實體記憶體百分比
TIME+ — 程序使用的CPU時間總計,單位1/100秒
COMMAND — 程序名稱(命令名/命令列)

 

top使用格式

top [-] [d] [p] [q] [c] [C] [S] [s]  [n]

引數說明

d 指定每兩次螢幕資訊重新整理之間的時間間隔。當然使用者可以使用s互動命令來改變之。 
p 通過指定監控程序ID來僅僅監控某個程序的狀態。 
q 該選項將使top沒有任何延遲的進行重新整理。如果呼叫程式有超級使用者許可權,那麼top將以儘可能高的優先順序執行。 
S 指定累計模式 
s 使top命令在安全模式中執行。這將去除互動命令所帶來的潛在危險。 
i 使top不顯示任何閒置或者僵死程序。 

c 顯示整個命令列而不只是顯示命令名 

更多請參考:【1】https://www.cnblogs.com/sunshuhai/p/6250514.html

                     【2】https://blog.csdn.net/dxl342/article/details/53507673/

 

 

====> PS 詳解:

Linux中的ps命令是Process Status的縮寫。ps命令用來列出系統中當前執行的那些程序。ps命令列出的是當前那些程序的快照,就是執行ps命令的那個時刻的那些程序,如果想要動態的顯示程序資訊,就可以使用top命令。

  要對程序進行監測和控制,首先必須要了解當前程序的情況,也就是需要檢視當前程序,而 ps 命令就是最基本同時也是非常強大的程序檢視命令。使用該命令可以確定有哪些程序正在執行和執行的狀態、程序是否結束、程序有沒有僵死、哪些程序佔用了過多的資源等等。總之大部分資訊都是可以通過執行該命令得到的。

  ps 為我們提供了程序的一次性的檢視,它所提供的檢視結果並不動態連續的;如果想對程序時間監控,應該用 top 工具。

  kill 命令用於殺死程序。

  linux上程序有5種狀態: 

1. 執行(正在執行或在執行佇列中等待) 

2. 中斷(休眠中, 受阻, 在等待某個條件的形成或接受到訊號) 

3. 不可中斷(收到訊號不喚醒和不可執行, 程序必須等待直到有中斷髮生) 

4. 僵死(程序已終止, 但程序描述符存在, 直到父程序呼叫wait4()系統呼叫後釋放) 

5. 停止(程序收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU訊號後停止執行執行) 

ps工具標識程序的5種狀態碼: 

D 不可中斷 uninterruptible sleep (usually IO) 

R 執行 runnable (on run queue) 

S 中斷 sleeping 

T 停止 traced or stopped 

Z 僵死 a defunct (”zombie”) process 

1.命令格式:

  ps[引數]

2.命令功能:

  用來顯示當前程序的狀態

3.命令引數:

a  顯示所有程序

-a 顯示同一終端下的所有程式

-A 顯示所有程序

c  顯示程序的真實名稱

-N 反向選擇

-e 等於“-A”

e  顯示環境變數

f  顯示程式間的關係

-H 顯示樹狀結構

r  顯示當前終端的程序

T  顯示當前終端的所有程式

u  指定使用者的所有程序

-au 顯示較詳細的資訊

-aux 顯示所有包含其他使用者的行程 

-C<命令> 列出指定命令的狀況

--lines<行數> 每頁顯示的行數

--width<字元數> 每頁顯示的字元數

--help 顯示幫助資訊

--version 顯示版本顯示
 

例項參考:[2] https://www.cnblogs.com/shujuxiong/p/8983103.html

 

 

 

 

轉載(摘取):

https://www.cnblogs.com/shujuxiong/p/8983103.html

https://blog.csdn.net/timchen525/article/details/76364706

https://www.cnblogs.com/sunshuhai/p/6250514.html

https://blog.csdn.net/dxl342/article/details/53507673/