top命令是linux系統中比較常用的一個命令了,通常用來監控服務器整體的運行性能,我們可以通過top命令動態輸出的數據來判斷當前系統的健康狀況,包括系統負載、CPU占比、內存使用率等數據。
那么要想搞清楚top命令如何監控Linux系統性能的前提是我們需要知道top命令輸出的各項數據的意思,根據這些數據來做下一步的判斷。
我們先來看top命令的正常結果輸出,如下圖所示:
我們可以把top命令輸出分為圖中紅色線框中的兩大部分。下面我們挨個講解這兩部分都是什么意思,以便我們可以了解每一個參數以及他對應的數據值是否健康。
大家可以把Linux系統想象成一個去醫院體檢的人,而top輸出的就是這份體檢報告,我們需要根據這份體檢報告來判斷這個人的各項參數指標是否屬于正常范圍值,也就是這個人是否健康。
loadaverage
這個參數代表的是Linux系統的平均負載,后面三個參數的值代表的是系統一分鐘、五分鐘、十五分鐘三個時間段的平均負載,數字越大說明服務器的壓力越大。
那么到底多少是屬于健康范圍值之內的呢?根據你的CPU核數來定,比如你是2核的,那么健康值就是0~2,四核的就是0~4。因此大家可以根據這個來判斷Linux系統的當前負載。
Tasks
可以看到總共80個參數,其中正在運行的有1個,休眠中的有79個,0個停止的進程,0個僵尸進程。
這塊的數據基本上沒什么太大的異常,基本上同時運行的任務數肯定很少,其他的都在等待,沒有停止的進程和僵尸進程就好。
CPU
這塊就是CPU的詳細信息了,各個字段解釋如下:
0.5us:用戶空間占用CPU百分比
0.2sy:內核空間占用CPU百分比
0.0ni:用戶進程空間內改變過優先級的進程占用CPU百分比
99.3id:空閑CPU百分比
0.0wa:等待輸入輸出的CPU時間百分比
0.0%hi:硬件CPU中斷占用百分比
0.0%si:軟中斷占用百分比
0.0%st:虛擬機占用百分比
這塊數據還是比較明顯的,空閑CPU占比99.3%,所以系統壓力還是很小的,當然你的系統也是浪費不少資源了。
內存
進程區
進程區代表的是當前系統正在運行的進程的列表,看這個列表的前提是你需要搞清楚表頭的每一列代表的意思。
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:執行該進程的命令
知道這些字段的意思后,大家就可以查看這個列表里各個進程的情況了,重點關注的參數就是當前進程的CPU占比以及吃了多少內存。
以上就是我對“如何根據Top命令查看Linux系統性能”問題的回答了,實際工作過程中我們還需要結合其他命令和Top命令一起更深一步診斷Linux系統的運行情況。