Linux 命令 top 拆解

top命令是Linux下經常使用的性能分析工具,可以實時顯示系統中各個進程的資源佔用情況。linux

1、內容介紹

top 命令運行圖:服務器

top 命令運行圖

1. 第一行——基本信息

第一行——基本信息

load average:

  load average 表示系統負載均值,使用 top 或 uptime 能夠查看到負載均值的信息,三個數值分表表示 1分鐘內 、5分鐘內 、 15分鐘內的系統負載均值,要理解這三個數值的含義,首先要了解系統的「核數」 工具

系統的核數 = CPU1 x CPU1的核數 + CPU2 x CPU2的核數 + CPUn x CPUn的核數 + …… 性能

  更清楚的講,在Linux系統中輸入命令grep -c 'model name' /proc/cpuinfo,便可獲得核數。 ui

  回到負載均值,負載均值的飽和值等於系統的核數, 因此,根據load average觀察系統負載首先要看系統中共有多少"核",單處理器單核的飽和值爲 1,單處理器雙核的飽和值爲2,雙處理器單核的飽和值也爲2.
  理解負載均值的最經典的例子是把一個CPU的核當作一座單行單向橋,多核即爲多行路單向橋.如圖: spa

圖片描述
  
假定,目前系統是單核系統,根據上面的描述,它的負載飽和值爲1.這種條件下,各類數值的含義以下:操作系統

  • 0.00 表示橋上沒有任何車流,很是暢通命令行

  • 0.50 表示橋上有最高承載量一半的車流,也比較流暢.code

  • 1.00 表示橋上已經達到了最大承載量,若是再有車來,可能就要稍等才能上橋了,這種狀況下,車速都會很慢,每每都會形成負載均值繼續上升.blog

  • 1.70 表示橋已經達到最大負載,且還有相對於橋最大負載70%的車輛等待上橋,這個時候的系統,已經要不堪重負了.

在實際應用中,重點關注5分鐘,15分鐘的負載均值,當達到0.7時,就須要調查緣由了。

2. 任務信息

任務信息

殭屍進程:表示已經終止,但仍然保留一些信息的進程。其等待父進程調用wait(),就能夠從內存中徹底移除。 將是進程沒法使用 kill 清理。若是要手動清理殭屍進程,須要找到其父進程,kill掉父進程後,LInux的 init 進程將接管該殭屍進程(linux中全部的子進程都須要有父進程,當父進程被kill後,其全部子進程將過繼給init進程),init進程隔一段時間去調用wait(),來清除殭屍進程。

3. CPU使用狀況

CPU使用狀況

4. 物理內存使用狀況

物理內存使用狀況

buff/cache:

buffers 和 cache 都是內存中存放的數據,不一樣的是,buffers 存放的是準備寫入磁盤的數據,而 cache 存放的是從磁盤中讀取的數據
在Linux系統中,有一個守護進程(daemon)會按期把buffers中的數據寫入的磁盤,也可使用 sync 命令手動把buffers中的數據寫入磁盤。使用buffers能夠把分散的 I/O 操做集中起來,減小了磁盤尋道的時間和磁盤碎片。
cache是Linux把讀取頻率高的數據,放到內存中,減小I/O。Linux中cache沒有固定大小,根據使用狀況自動增長或刪除。

# 手動把buffers寫入硬盤並清空cache
sync && echo 3 > /proc/sys/vm/drop_caches

5. 交換區使用狀況

交換區使用狀況

Swap(內存交換區):

  是硬盤上的一塊空間。在內存不足的狀況下,操做系統把內存中不用的數據存到硬盤的交換區,騰出內存來讓別的程序運行。所以,開啓swap會必定程度的引發 I/O 性能降低(阿里服務器默認不開)。

6. 進程詳細信息

進程詳細信息

2、靈活使用top

1. 命令行式使用

-b:以批處理模式操做 這種方式能夠把top輸出的內容以可讀的形式寫入文件top -b >> top.txt
-c:顯示完整的命令行(COMMAND),想查看進程執行的具體位置時,很是有用
-d:屏幕刷新間隔時間 top -d 1:表示每隔一秒刷新一次
-s:使用保密模式
-S:指定累積模式
-i:不顯示任何閒置或者僵死進程
-u<用戶名>:指定用戶名
-p<進程號>:指定進程
-n<次數>:指定循環顯示的次數,到了次數本身退出。

2. 交互式使用

top命令顯示系統實時狀態,支持交互操做。執行top命令,顯示系統狀態界面(同時也是交互界面),輸入交互命令:

1:查看CPU每一個核的使用狀況
h:顯示幫助畫面,給出一些簡短的命令總結說明
k:終止一個進程
i:忽略閒置和僵死進程,這是一個開關式命令
q:退出程序
r:從新安排一個進程的優先級別
S:切換到累計模式
s:改變兩次刷新之間的延遲時間(單位爲s),若是有小數,就換算成ms。輸入0值則系統將不斷刷新,默認值是5s
l:切換顯示平均負載和啓動時間信息
m:切換顯示內存信息
t:切換顯示進程和CPU狀態信息
c:切換顯示命令名稱和完整命令行
M:根據駐留內存大小進行排序
P:根據CPU使用百分比大小進行排序
T:根據時間/累計時間進行排序
w:將當前設置寫入~/.toprc文件中。

持續更新中……
相關文章
相關標籤/搜索