1. 程式人生 > >TOP命令分析效能

TOP命令分析效能

語法

top -h
procps-ng version 3.3.10
Usage:
  top -hv | -bcHiOSs -d secs -n max -u|U user -p pid(s) -o field -w [cols]
s – 改變畫面更新頻率
l – 關閉或開啟第一部分第一行 top 資訊的表示
t – 關閉或開啟第一部分第二行 Tasks 和第三行 Cpus 資訊的表示
m – 關閉或開啟第一部分第四行 Mem 和 第五行 Swap 資訊的表示
N – 以 PID 的大小的順序排列表示程序列表
P – 以 CPU 佔用率大小的順序排列程序列表
M – 以記憶體佔用率大小的順序排列程序列表
h – 顯示幫助
n – 設定在程序列表所顯示程序的數量
q – 退出 top
s – 改變畫面更新週期

請在top裡面按下E,注意是大寫。你會發現記憶體那一行的最左側,也就是Mem前面,
會有Kib、MiB、GiB等單位變化,但是數字後面不會直接寫明單位。

在這裡插入圖片描述

顯示列

        預設情況下僅顯示比較重要的 PID、USER、PR、NI、VIRT、RES、SHR、S、%CPU、%MEM、TIME+、COMMAND 列。可以通過下面的快捷鍵來更改顯示內容。通過 f 鍵可以選擇顯示的內容。按 f 鍵之後會顯示列的列表,按 a-z 即可顯示或隱藏對應的列,最後按回車鍵確定。按 o 鍵可以改變列的顯示順序。按小寫的 a-z 可以將相應的列向右移動,而大寫的 A-Z 可以將相應的列向左移動。最後按回車鍵確定。按大寫的 F 或 O 鍵,然後按 a-z 可以將程序按照相應的列進行排序。而大寫的 R 鍵可以將當前的排序倒轉。

在這裡插入圖片描述

作用

top命令作為Linux下最常用的效能分析工具之一,可以監控、收集程序的CPU、IO、記憶體使用情況。比如我們可以通過top命令獲得一個程序使用了多少虛擬記憶體(VIRT)、實體記憶體(RES)、共享記憶體(SHR)。

VIRT RES SHR的準確含義

top命令通過解析/proc//statm統計VIRT和RES和SHR欄位值。
VIRT是申請的虛擬記憶體總量。
RES是程序使用的實體記憶體總和。
SHR是RES中”對映至檔案”的實體記憶體總和。包括:

  • 程式的程式碼段。
  • 動態庫的程式碼段。
  • 通過mmap做的檔案對映。
  • 通過mmap做的匿名對映,但指明瞭MAP_SHARED屬性。
  • 通過shmget申請的共享記憶體。

/proc//smaps內Shared_*統計的是RES中對映數量>=2的實體記憶體。
/proc//smaps內Private_*統計的是RES中對映數量=1的實體記憶體。

參考文獻