CPU性能評估
vmstat命令
- 作用:可以對操作系統的內存信息、進程狀態、CPU活動等進行監控。
- 語法:vmstat(選項)(參數)
-
選項
- -a:顯示活動內頁;
- -f:顯示啟動后創建的進程總數;
- -m:顯示slab信息;
- -n:頭信息僅顯示一次;
- -s:以表格方式顯示事件計數器和內存狀態;
- -d:報告磁盤狀態;
- -p:顯示指定的硬盤分區狀態;
- -S:輸出信息的單位。
-
參數
- 事件間隔:狀態信息刷新的時間間隔;
- 次數:顯示報告的次數。
-
舉例
[root@study ~]# vmstat 3 5
每2秒統計一次輸出,統計5次后停止輸出。
-
解釋
-
procs
- r列表示運行和等待CPU時間片的進程數,此數值如果長期大於系統CPU個數,說明CPU不足,需要增加CPU。
- b列表在等待資源的進程數,如正在等待I/O或者內存交換等。
-
memory
- swpd列表示切換到內存交換區的內存數量(以kb為單位)。
- free列表示當前空閑的物理內存數量(以kb為單位)。
- buff列表示緩沖區緩存的內存數量,一般對塊設備的讀寫才需要緩沖。
- cache列表示頁面緩存的內存數量,一般作為文件系統緩存,如果cache值較大,說明緩存的文件數角度,若此時的IO中bi較小,說明文件系統效率比較高。
-
swap
- si列表示由磁盤調入內存,即內存進入內存交換區的數量。
- so列表示內存調入磁盤,即內存交換區進入內存的數量。
注意:如果si、so長期不為0,則表示系統內存不足。
-
io:顯示磁盤讀寫狀況
- bi列表示從塊設備讀入數據的總量(即讀磁盤)(每秒kb)。
- bo列表示寫入到塊設備的數據總量(即寫磁盤)(每秒kb)。
-
system:顯示猜忌間隔內發生的中斷次數。
- in列表示在某一時間間隔中觀測到的每秒設備中斷次數。
- cs列表示每秒產生的上下文切換次數。
注意:以上兩個值越大,則由內核占用CPU的時間會越多。
-
cpu:顯示CPU的使用狀態。
- us列顯示用戶進程占用CPU的時間百分比,如果長期大於50%,則需要重點關注。
- sy列顯示內核進程占用CPU的時間百分比。
- id列顯示了CPU處在空閑狀態的百分比。
- wa列顯示了I/O等待所占用的CPU時間百分比。wa值越高,說明I/O等待越嚴重。
**注意:- us+sy的參考值為80%,如果大於80%,可能存在CPU資源不足。
- wa的參考是為20%,如果wa超過20%,說明I/O等待嚴重。**
-
-
sar命令
- 作用:Linux下系統運行狀態統計工具,它將指定的操作系統狀態計數器顯示到標准輸出設備。sar工具將對系統當前的狀態進行取樣,然后通過計算數據和比例來表達系統的當前運行狀態。它的特點是可以連續對系統取樣,獲得大量的取樣數據。
- 語法:sar(選項)(參數)
-
選項
- -A:顯示所有的報告信息;
- -b:顯示I/O速率;
- -B:顯示換頁狀態;
- -c:顯示進程創建活動;
- -d:顯示每個塊設備的狀態;
- -e:設置顯示報告的結束時間;
- -f:從指定文件提取報告;
- -i:設狀態信息刷新的間隔時間;
- -P:報告每個CPU的狀態;
- -R:顯示內存狀態;
- -u:顯示CPU利用率;
- -v:顯示索引節點,文件和其他內核表的狀態;
- -w:顯示交換分區狀態;
- -x:顯示給定進程的狀態。
-
參數
- 間隔時間:每次報告的間隔時間(秒);
- 次數:顯示報告的次數。
-
舉例
[root@study ~]# sar -u 3 5
-
解釋
- %user列顯示了用戶進程占用CPU的時間百分比。
- %nice列顯示了運行正常進程占用CPU的時間百分比。
- %system列顯示了系統進程占用CPU的時間百分比。
- %iowait列顯示了I/O等待所占用CPU的時間百分比。
- %steal列顯示了在內存相對進展的環境下pageini強制對不同的頁面進行的steal操作。
- %idle列顯示了CPU處在空閑狀態的時間百分比。
注意:
1. Average列是對之上的所有信息進行統計,計算平均值。
2. 若有多個CPU,可使用sar -P 0 3 5對第一個CPU進行查詢,第二個CPU即位sar -P 1 3 5。
-
iostat命令
- 作用:用於監視系統輸入輸出設備和CPU的使用情況。它的特點是匯報磁盤活動統計情況,同時也會匯報出CPU使用情況。同vmstat一樣,iostat也有一個弱點,就是它不能對某個進程進行深入分析,僅對系統的整體情況進行分析。
- 語法:iostat(選項)(參數)
-
選項
- -c:僅顯示CPU使用情況;
- -d:僅顯示設備利用率;
- -k:顯示狀態以千字節每秒為單位,而不使用塊每秒;
- -m:顯示狀態以兆字節每秒為單位;
- -p:僅顯示塊設備和所有被使用的其他分區的狀態;
- -t:顯示每個報告產生時的時間;
- -V:顯示版號並退出;
- -x:顯示擴展狀態。
-
參數
- 間隔時間:每次報告的間隔時間(秒);
- 次數:顯示報告的次數。
-
舉例
[root@study ~]# iostat -x /dev/sda1
-
解釋
- Device:監測設備名稱;
- rrqm/s:每秒需要讀取需求的數量;
- wrqm/s:每秒需要寫入需求的數量;
- r/s:每秒實際讀取需求的數量;
- w/s:每秒實際寫入需求的數量;
- rsec/s:每秒讀取區段的數量;
- wsec/s:每秒寫入區段的數量;
- rkB/s:每秒實際讀取的大小,單位為KB;
- wkB/s:每秒實際寫入的大小,單位為KB;
- avgrq-sz:需求的平均大小區段;
- avgqu-sz:需求的平均隊列長度;
- await:等待I/O平均的時間(milliseconds);
- svctm:I/O需求完成的平均時間;
- %util:被I/O需求消耗的CPU百分比。
-
內存性能評估
free命令
- 作用:顯示當前系統未使用的和已使用的內存數目,還可以顯示被內核使用的內存緩沖區。
- 語法:free(選項)
-
選項
- -b:以Byte為單位顯示內存使用情況;
- -k:以KB為單位顯示內存使用情況;
- -m:以MB為單位顯示內存使用情況;
- -o:不顯示緩沖區調節列;
- -s<間隔秒數>:持續觀察內存使用狀況;
- -t:顯示內存總和列;
- -V:顯示版本信息。
-
舉例
[root@study ~]# free -m
-
解釋
- 程序可使用內存=free+buffers+cached(即+ buffers/cache的值)
- 程序已使用內存=user-buffres-cached
- 物理內存可分配的內存值為free,物理總內存為total。
注意:處於buffers和cached中的內存對於應用程序而言是可用的,對於內核而言是無法分配的,內核可分配的內存僅為free的值。
-
規律
- (+ buffers/cache)/系統物理內存<20%:系統內存資源緊缺,需要增加系統內存;
- 20%<(+ buffers/cache)/系統物理內存<70%:系統內存資源基本滿足應用需求,暫不影響性能;
- (+ buffers/cache)/系統物理內存>70%:系統內存資源非常充足,不影響系統性能。
-
watch與free結合
- 作用:watch命令以周期性的方式執行給定的指令,指令輸出以全屏方式顯示。
- 語法:watch(選項)(參數)
-
選項
- -n:指定指令執行的間隔時間(秒);
- -d:高亮顯示指令輸出信息不同之處;
- -t:不顯示標題。
-
參數
- 指令:需要周期性執行的指令。
-
舉例
[root@study ~]# watch -n 3 -d free -m
-
sar命令
- 作用:見上
- 語法:見上
- 舉例
[root@study ~]# sar -r
- 解釋
- kbmemfree:表示空閑物理內存大小;
- kbmemused:表示已使用的物理內存空間大小;
- %memused:表示已使用的內存占總內存大小的百分比;
- kbbuffers:緩沖區緩存大小;
- kbcached:緩存區緩存大小;
- kbcommit:應用程序當前使用的內存大小;
- %commit:應用程序當前使用的內存百分比。
- 舉例
磁盤I/O性能評估
sar -d命令
- 作用:見上
- 語法:見上
- 舉例
[root@study ~]# sar -d 2 3
- 解釋
- DEV:表示磁盤設備名稱;
- tps:表示每秒到屋里磁盤的傳送數;
- rd_sec/s:表示每秒從設備讀取的扇區數(1扇區=512字節);
- wr_sec/s:表示每秒寫入的設備的扇區數;
- avgrq-sz:表示平均每次設備I/O操作的數據大小(以扇區為單位);
- avgqu-sz:表示平均I/O隊列長度;
- await:表示平均每次設備I/O操作的等待時間(以毫秒為單位);
- svctm:表示平均每次設備I/O操作的服務時間(以毫秒為單位);
- %util:表示一秒鍾有百分之幾的是用於I/O操作。
- 舉例
iostat -x命令:見上
vmstat -d:見上
網絡性能評估
ping命令:略
netstat -i命令
- 作用:顯示網絡接口信息。
- 語法:略
- 舉例
[root@study ~]# netstat -i
- 解釋
- Iface:表示網絡設備的接口名稱;
- MTU:表示最大傳輸單元,單位為字節;
- Met:度量值,供某些操作系統用,用於計算一條路由的成本;
- RX-OK/TX-OK:表示已經准確無誤地接受/發送了多少數據包;
- RX-ERR/TX-ERR:表示接受/發送數據包產生了多少錯誤;
- RX-DRP/TX-DRP:表示接受/發送數據包時丟棄了多少數據包;
- RX-OVR/TX-OVR:表示由於誤差而遺失了多少數據包;
- Flg:表示接口標記,其具體含義如下——
- L:表示該接口是個回環設備;
- B:表示設置了廣播地址;
- M:表示接受所有數據包;
- R:表示接口正在運行;
- U:表示接口處於活動狀態;
- O:表示在該接口上禁用arp;
- P:表示一個點到點的連接。
- 舉例
netstat -r命令
- 作用:檢查系統的路由表信息。
- 語法:略
- 舉例
- 解釋
略
- 舉例
sar -n命令
- 作用:見上
- 語法:sar -n [類型]
-
類型
- DEV:顯示網絡接口信息;
- EDEV:顯示關於網絡錯誤的統計數據;
- SOCK:顯示套接字信息;
- FULL:顯示所有類型。
-
舉例
[root@study ~]# sar -n DEV 2 3
-
解釋
- IFACE:表示網絡接口設備;
- rxpck/s:表示每秒鍾接受的數據包大小;
- txpck/s:表示每秒鍾發送的數據包大小;
- rxkB/s:表示每秒鍾接受的字節數;
- txkB/s:表示每秒鍾發送的字節數;
- rxcmp/s:表示每秒鍾接受的壓縮數據包;
- txcmp/s:表示每秒鍾發送的壓縮數據包;
- rxmcst/s:表示每秒鍾接受的多播數據包。
-