天天看點

系統性能分析工具之top

1.top的輸出介紹

[root@zhu3 ~]# top
top - 12:26:46 up 15:22,  2 users,  load average: 0.00, 0.00, 0.00
Tasks: 112 total,   2 running, 110 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.0%us,  0.2%sy,  0.0%ni, 99.8%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:    527116k total,   376812k used,   150304k free,    93384k buffers
Swap:  1534196k total,        0k used,  1534196k free,   131816k cached
PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
3509 zabbix    15   0 51384 3276 1452 S  0.3  0.6   0:01.58 zabbix_server
17822 root      15   0  2320 1020  804 R  0.3  0.2   0:00.03 top
1 root      15   0  2072  632  544 S  0.0  0.1   0:00.44 init
2 root      RT  -5     0    0    0 S  0.0  0.0   0:00.00 migration/0
3 root      34  19     0    0    0 S  0.0  0.0   0:00.00 ksoftirqd/0
4 root      RT  -5     0    0    0 S  0.0  0.0   0:00.00 watchdog/0
5 root      10  -5     0    0    0 S  0.0  0.0   0:00.10 events/0
6 root      10  -5     0    0    0 S  0.0  0.0   0:00.00 khelper
7 root      16  -5     0    0    0 S  0.0  0.0   0:00.00 kthread
10 root      10  -5     0    0    0 S  0.0  0.0   0:00.20 kblockd/0
11 root      20  -5     0    0    0 S  0.0  0.0   0:00.00 kacpid
69 root      20  -5     0    0    0 S  0.0  0.0   0:00.00 cqueue/0
72 root      10  -5     0    0    0 S  0.0  0.0   0:00.00 khubd
74 root      12  -5     0    0    0 S  0.0  0.0   0:00.01 kseriod
140 root      19   0     0    0    0 S  0.0  0.0   0:00.00 khungtaskd
141 root      25   0     0    0    0 S  0.0  0.0   0:00.00 pdflush      

第一行:同uptime指令顯示的結果一樣

[root@zhu3 ~]# uptime
12:28:04 up 15:23,  2 users,  load average: 0.00, 0.00, 0.00      

      目前的時間:12:28:04 

      系統運作的時間:up 15:23

      已經登入系統的使用者人數:2 users

      系統在1分鐘,5分鐘,15分鐘的平均工作負載(平均要負責運作幾個工作程序),如果每個

      cpu目前 活動程序數不大于3,則系統性能良好,不大于4,可以接受,大于5表示負荷嚴重

第二行 :顯示的是目前的程序總量與狀态

        總的程序數:Tasks: 112 total,

        正在運作的程序數2 running,

        正在睡眠的程序數 110 sleeping,

        停止的程序數 0 stopped,

        僵屍程序數 0 zombie

第三行:顯示的是cpu的負載

       使用者空間占用cpu百分比 0.0%us,

       核心空間占用cpu百分比 0.2%sy,

       使用者程序空間内改變過優先級的程序占用的cpu百分比 0.0%ni,

       空閑的cpu百分比 99.8%

id

,

       等待輸入輸出的cpu時間百分比 0.0%wa, 0.0%hi, 0.0%si, 0.0%st

第四行:顯示記憶體使用情況

      實體記憶體總量527116k total,

      使用的記憶體總量 376812k used, 

      空閑記憶體總量150304k 

free

      用作緩存的記憶體 93384k buffers

第五行:交換分區的使用情況

       交換分區總量1534196k total, 

       已經使用的交換分區0k used,

        剩餘的交換分區 1534196k 

free

 緩沖的交換區總量。 記憶體中的内容被換出到交換區,而後又被換入到記憶體,

               但使用過的交換區 尚未被覆寫, 該數值即為這些内容已存在于記憶體中的

               交換區的大小。相應的記憶體再次被換出時可不必再對交換區寫入。

131816k cached

第六行:

     PID :每個程序的id

     USER :該程序所屬的使用者 

     PR  : priority的縮寫,程序執行的優先級,越小越先被執行

     NI  :與priority有關,越小越早被執行

     VIRT :程序所使用的虛拟記憶體總量

     RES :程序使用的未被換出的實體記憶體總量

     SHR :共享記憶體大小

      S :程序狀态,D表示不可中斷的睡眠狀态,R表示運作狀态,S表示睡眠狀态,Z表示僵屍狀态 

     %CPU :cpu的使用率

     %MEM 記憶體使用率

     TIME+ :程序使用cpu的時間總計

     COMMAND :指令名

常用的互動指令

h或?: 顯示可以輸入的按鍵指令

P :以cpu的百分比大小排序(預設)

M :根據使用記憶體大小排序

N :以PID來排序

q :離開top

-p:檢測指定的某個程序資訊

[root@zhu3 ~]# ps -ef | grep mysql
root      3280     1  0 Sep03 pts/1    00:00:00 /bin/sh /usr/bin/mysqld_safe --datadir=/var/lib/mysql --socket=/var/lib/mysql/mysql.sock --pid-file=/var/run/mysqld/mysqld.pid --basedir=/usr --user=mysql
mysql     3362  3280  0 Sep03 pts/1    00:00:48 /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --user=mysql --pid-file=/var/run/mysqld/mysqld.pid --skip-external-locking --log-error=/var/log/mysqld.log --socket=/var/lib/mysql/mysql.sock
root     18171  2902  0 13:45 pts/1    00:00:00 grep mysql
[root@zhu3 ~]# top -p 3362
top - 13:45:43 up 16:41,  2 users,  load average: 0.24, 0.07, 0.02
Tasks:   1 total,   0 running,   1 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.0%us,  0.2%sy,  0.0%ni, 99.8%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:    527116k total,   382264k used,   144852k free,    98336k buffers
Swap:  1534196k total,        0k used,  1534196k free,   132128k cached
PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
3362 mysql     18   0  141m  23m 4368 S  0.0  4.5   0:48.54 mysqld      

在top基本視圖上

數字1 :顯示每個邏輯cpu的狀況

繼續閱讀