【整合】【故障排查】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
====> 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/