天天看點

Linux性能測試 top指令

top指令是Linux下常用的性能分析工具,能夠實時顯示系統中各個程序的資源占用狀況,類似于Windows的任務管理器。

top可以顯示CPU占用率為前幾位的程序,并提供CPU的實時活動情況

文法:top [-s time] [-d count] [-q] [-u] [-h] [-n number] [-f filename]

-s time 設定螢幕重新整理的延時,機關為秒,預設值5秒

-d count 設定螢幕重新整理的次數,重新整理顯示完count次後退出

-q 如果經過nice授權,使用-q可以使top運作的更快一些

-u 用顯示User ID代替username,提高指令運作速度 -h 當系統由多個CPU時,個别CPU的狀态資訊被隐藏,隻顯示平均狀态值

-n number 設定每一螢幕顯示的程序數目,number值超過程序最大數目,則設定無效

-f filename 輸出重定向到給定的檔案名,預設為16個程序資訊

統計資訊區(前五行)

第一行:任務隊列資訊,同 uptime 指令的執行結果。其内容如下:

09:20:44  目前時間

up 1:49  系統運作時間,格式為時:分

1 user     目前登入使用者數

load average: 0.07, 0.02, 0.00 

      系統負載,即任務隊列的平均長度。三個數值分别為 1分鐘、5分鐘、15分鐘前到現在的平均值。

第二行:程序資訊。當有多個CPU時,這些内容可能會超過兩行。内容如下:

67 total  程序總數

1 running  正在運作的程序數

64 sleeping   睡眠的程序數

2 stopped  停止的程序數

0 zombie       僵屍程序數

第三行:CPU的資訊。當有多個CPU時,可能不止一行。内容如下:

0.0% us    (user mode)使用者占用CPU百分比

0.0% sy    (system mode)系統占用CPU百分比

0.0% ni    (low priority user mode (nice))低優先級使用者占用CPU百分比

100.0%  id    (idle task)空閑任務占CPU百分比

0.0% wa   (I/O waiting)等待輸入輸出的CPU時間百分比

0.0% hi    (servicing IRQs)硬體中斷占CPU百分比

0.0% si    (servicing soft IRQs)軟體中斷占CPU百分比

第四行:實體記憶體資訊

最後兩行為記憶體資訊。内容如下:

514280k total   實體記憶體總量

313348k used   使用的實體記憶體總量

200932k free   空閑記憶體總量

20480k buffers   用作核心緩存的記憶體量

第五行:交換記憶體資訊

2008116k total    交換區總量

0k used       使用的交換區總量

2008116k free   空閑交換區總量

217160k cached    緩沖的交換區總量

程序資訊區

統計資訊區域的下方顯示了各個程序的詳細資訊。首先來認識一下各列的含義。

列名 含義

PID 程序id

PPID 父程序id

RUSER Real user name

UID 程序所有者的使用者id

USER 程序所有者的使用者名

GROUP 程序所有者的組名

TTY 啟動程序的終端名。不是從終端啟動的程序則顯示為 ?

PR 優先級

NI nice值。負值表示高優先級,正值表示低優先級

P 最後使用的CPU,僅在多CPU環境下有意義

%CPU 上次更新到現在的CPU時間占用百分比

TIME 程序使用的CPU時間總計,機關秒

TIME+ 程序使用的CPU時間總計,機關1/100秒

%MEM 程序使用的實體記憶體百分比

VIRT 程序使用的虛拟記憶體總量,機關kb。VIRT=SWAP+RES

SWAP 程序使用的虛拟記憶體中,被換出的大小,機關kb。

RES 程序使用的、未被換出的實體記憶體大小,機關kb。RES=CODE+DATA

CODE 可執行代碼占用的實體記憶體大小,機關kb

DATA 可執行代碼以外的部分(資料段+棧)占用的實體記憶體大小,機關kb

SHR 共享記憶體大小,機關kb

nFLT 頁面錯誤次數

nDRT 最後一次寫入到現在,被修改過的頁面數。

S 程序狀态。

    D=不可中斷的睡眠狀态

    R=運作

    S=睡眠

    T=跟蹤/停止

    Z=僵屍程序

COMMAND 指令名/指令行

WCHAN 若該程序在睡眠,則顯示睡眠中的系統函數名

Flags 任務标志,參考 sched.h

預設情況下僅顯示比較重要的 PID、USER、PR、NI、VIRT、RES、SHR、S、%CPU、%MEM、TIME+、COMMAND 列。

繼續閱讀