一、分別制造 CPU、內存、磁盤IO、網絡IO繁忙的情況,并用 top, dstat, iostat 等工具觀察
1、top
a、命令解析
- q 退出top命令
-
- s 設置刷新時間間隔
- c 顯示命令完全模式
- t 顯示或隱藏進程和CPU狀態信息
- m 顯示或隱藏內存狀態信息
- l 顯示或隱藏uptime信息
- f 增加或減少進程顯示標志
- S 累計模式,會把已完成或退出的子進程占用的CPU時間累計到父進程的MITE+
- P 按%CPU使用率排行
- T 按MITE+排行
- M 按%MEM排行
- u 指定顯示用戶進程
- r 修改進程renice值
- kkill 進程
- i 只顯示正在運行的進程
- W 保存對top的設置到文件^/.toprc,下次啟動將自動調用toprc文件的設置。
- h 幫助命令。
- q 退出
b、top 使用
# top
top - 16:50:20 up 5:43, 3 users, load average: 0.00, 0.00, 0.00
Tasks: 157 total, 1 running, 156 sleeping, 0 stopped, 0 zombie
Cpu(s): 8.2%us, 2.2%sy, 0.0%ni, 89.7%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 1907580k total, 1655416k used, 252164k free, 52160k buffers
Swap: 4194296k total, 8k used, 4194288k free, 1116244k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
2453 root 20 0 206m 47m 9196 S 5.8 2.5 1:14.98 Xorg
3072 D 20 0 349m 18m 11m S 2.5 1.0 0:31.89 gnome-terminal
第一行顯示的是 當前時間 、當前有多少個登錄的用戶、系統負載
第二行顯示的是 進程總數、正在運行的進程數、睡眠的進程數、停止的進程數、僵尸態進程數
第三行顯示的是 用戶占 CPU 的百分比、內核占 CPU 的百分比、用戶進程內改變過優先級的進程占 CPU 的百分比、空閑 CPU 的百分比、等待輸入輸出的百分比、
硬中斷占用 CPU 的百分比、軟中斷占 CPU 的百分比、虛擬機偷取時間
第四行顯示的是 物理內存總數、使用的物理內存總數、空閑內存總數、用作內核緩存的總數
第五行顯示的是 交換區總量、使用的交換區總量、空閑的交換區總量、緩存的交換區總量
PID :進程 ID、USER:進程所有者的用戶名、NI:用戶名、VIRT:進程使用的虛擬內存、RES:進程使用的物理內存大小、SHR:共享內存大小(kb)、S:進程狀態、
%CPU:CPU 距離上次查詢占用的百分比、%MEM:進程使用的物理內存百分比、TIME+:進程使用的 CPU 時間、COMMAND 進程的別名 2、dstat
a、命令解析
-l 顯示負載統計量
-m 顯示內存使用率(包括used,buffer,cache,free值)
-r 顯示I/O統計
-s 顯示交換分區使用情況
-t 將當前時間顯示在第一行
–fs 顯示文件系統統計數據(包括文件總數量和inodes值)
–nocolor 不顯示顏色(有時候有用)
–socket 顯示網絡統計數據
–tcp 顯示常用的TCP統計
–udp 顯示監聽的UDP接口及其當前用量的一些動態數據
--disk-util 顯示某一時間磁盤的忙碌狀況
--freespace 顯示當前磁盤空間使用率
--proc-count 顯示正在運行的程序數量
--top-bio 指出塊I/O大的進程
--top-cpu 圖形化顯示CPU占用大的進程
--top-io 顯示正常I/O大的進程
--top-mem 顯示占用多內存的進程
b、dstat 的簡單使用:
root@Demon share]# dstat 1 10
You did not select any stats, using -cdngy by default.
----total-cpu-usage---- -dsk/total- -net/total- ---paging-- ---system--
usr sys idl wai hiq siq| read writ| recv send| in out | int csw
1 1 98 0 0 0| 34k 54k| 0 0 | 0 0 | 65 138
1 1 98 0 0 0| 0 0 | 0 0 | 0 0 | 60 130
0 1 99 0 0 0| 0 0 | 0 0 | 0 0 | 50 97
1 0 99 0 0 0| 0 0 | 0 0 | 0 0 | 61 77
1 2 97 0 0 0| 0 0 | 0 0 | 0 0 | 73 165
0 0 100 0 0 0| 0 0 | 0 0 | 0 0 | 41 114
2 1 97 0 0 0| 0 60k| 0 0 | 0 0 | 80 172
1 1 98 0 0 0| 0 0 | 0 0 | 0 0 | 77 148
1 1 98 0 0 0| 0 0 | 0 0 | 0 0 | 64 126
0 0 100 0 0 0| 0 0 | 0 0 | 0 0 | 42 72
1 2 97 0 0 0| 0 0 | 0 0 | 0 0 | 96 171
它默認顯示是分為 5 區域,第一個區域是用來看CPU 使用率,第二個區域是磁盤統計,第三個區域是網絡統計,第四個區域是內存使用率,
第五個區域是系統信息
3、iostat
a、iostat 命令解析(命令格式:iostat [參數] [時間] [次數])
-C 顯示CPU使用情況
-d 顯示磁盤使用情況
-k 以 KB 為單位顯示
-m 以 M 為單位顯示
-N 顯示磁盤陣列(LVM) 信息
-n 顯示NFS 使用情況
-p[磁盤] 顯示磁盤和分區的情況
-t 顯示終端和CPU的信息
-x 顯示詳細信息
-V 顯示版本信息
b、iostat 的使用:
ot@Demon share]# iostat -x
Linux 2.6.32-431.el6.x86_64 (Demon) 2016年01月15日 _x86_64_ (1 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
0.78 0.05 0.69 0.35 0.00 98.12
Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s avgrq-sz avgqu-sz await svctm %util
sda 0.29 11.12 0.95 1.11 61.44 97.82 77.58 0.12 60.40 2.81 0.58
scd0 0.00 0.00 0.00 0.00 0.02 0.00 8.17 0.00 0.56 0.56 0.00
rrqm/s 每秒進行 merge 的讀操作數目。即 delta(rmerge)/s
wrqm/s 每秒進行 merge 的寫操作數目。即 delta(wmerge)/s
r/s 每秒完成的讀 I/O 設備次數。即 delta(rio)/s
w/s 每秒完成的寫 I/O 設備次數。即 delta(wio)/s
rsec/s 每秒讀扇區數。即 delta(rsect)/s
wsec/s 每秒寫扇區數。即 delta(wsect)/s
avgrq-sz 平均每次設備I/O操作的數據大小 (扇區)。即 delta(rsect+wsect)/delta(rio+wio)
avgqu-sz 平均I/O隊列長度。即 delta(aveq)/s/1000 (因為aveq的單位為毫秒)。
await 平均每次設備I/O操作的等待時間 (毫秒)。即 delta(ruse+wuse)/delta(rio+wio)
svctm 平均每次設備I/O操作的服務時間 (毫秒)。即 delta(use)/delta(rio+wio)
%util 一秒中有百分之多少的時間用于 I/O 操作,或者說一秒中有多少時間 I/O 隊列是非空的