細說linux服務器各種監控工具
linux下面有很多強大的監控工具,各有各的優點,作為一個linux系統管理員,有必要知道這些命令的用法,結合自己的經驗,寫了點介紹,如對不足的地方,還請批評指正!
yum install sysstat dstat sysstat是一系列的監控命令包。
[root@localhost mnt]# rpm -ql sysstat | grep bin
/usr/bin/iostat
/usr/bin/mpstat
/usr/bin/sadf
/usr/bin/sar
一、用tcp查看CPU、內存等
[root@localhost ipv4]# top
top - 01:58:43 up 1 day, 19:43, 1 user, load average: 0.00, 0.00,
Tasks: 115 total, 1 running, 114 sleeping, 0 stopped, 0 zombi
Cpu(s): 0.3%us, 0.0%sy, 0.0%ni, 99.7%id, 0.0%wa, 0.0%hi, 0.0%
Mem: 1021520k total, 866804k used, 154716k free, 41884k bu
Swap: 2047992k total, 23832k used, 2024160k free, 180288k ca
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+
1 root 20 0 19336 1260 1048 S 0.0 0.1 0:00.85
2 root 20 0 0 0 0 S 0.0 0.0 0:00.00
3 root RT 0 0 0 0 S 0.0 0.0 0:00.00
4 root 20 0 0 0 0 S 0.0 0.0 0:00.00
5 root RT 0 0 0 0 S 0.0 0.0 0:00.00
6 root 20 0 0 0 0 S 0.0 0.0 0:00.02
7 root 20 0 0 0 0 S 0.0 0.0 0:00.00
8 root 20 0 0 0 0 S 0.0 0.0 0:00.00
9 root 20 0 0 0 0 S 0.0 0.0 0:00.00
10 root 20 0 0 0 0 S 0.0 0.0 0:00.00
11 root 20 0 0 0 0 S 0.0 0.0 0:00.00
12 root 20 0 0 0 0 S 0.0 0.0 0:00.00
13 root 20 0 0 0 0 S 0.0 0.0 0:00.00
14 root 20 0 0 0 0 S 0.0 0.0 0:00.00
15 root 20 0 0 0 0 S 0.0 0.0 0:00.12
第一行:當前時間 系統運行時間 當前登錄用戶 系統負載(1分鐘,5分鐘,15分鐘平均值)
第二行:115進程總數 1個正在運行的進程 114個睡眠進程 0個停止進程 0個僵屍進程
第三行:用戶空間占用CPU百分比0.3% ,系統內核占用0%,用戶進程空間內改變過優先級的進程占用CPU0%(目前未涉及到過),空閒CPU占99.7%,等待輸入輸出的CPU占0%,服務於硬中斷所耗費的CPU占用0%,服務於軟中斷所耗費的CPU占用0%,Steal Time(目前未涉及到過)
第四行:物理內存總量為1021520KB,使用物理內存總量為866804KB,空閒內存總量154716KB,用作內核緩存的內存量為41884KB
第五行:swap交換分區總量為 2047992KB,使用的交換分區總量23832KB,空閒交換分區總量 2024160KB,緩沖的交換區總量180288KB
(注:內存可以用free看一下,大概內容如下:
[root@localhost lib]# free
total used free shared buffers cached
Mem: 1021520 261884 759636 0 6128 33948
-/+ buffers/cache: 221808 799712
Swap: 2064376 28336 2036040
第六行:PID為進程ID,USER為進程所有者用戶,PR優先級(未研究過),NI 負值表示高優先級正值表示低優先級,VIRT進程需要的虛擬內存總量,RES常駐內存,SHR共享內存大小,S進程狀態( D=不可中斷的睡眠狀態,R=運行,S=睡眠,T=跟蹤/停止, Z=僵屍進程),%CPU更新到現在CPU占用百分比(也就是單位時間內進程使用的CPU時間/單位時間,如每隔1s,該進程有800ms占用CPU,則該進程占用CPU80%,如果是8核的,8個CPU全部跑滿,則CPU占用率為800%),%MEM進程使用的物理內存百分比,TIME+進程使用的CPU時間總和,COMMAND為命令名稱
(注:通常我們會關注一個程序占用的CPU和內存的大小,即%CPU和VIRT。以下是VIRT、RES、SHR的解釋:
VIRT:virtual memory usage
1、進程“需要的”虛擬內存大小,包括進程使用的庫、代碼、數據等
2、假如進程申請100m的內存,但實際只使用了10m,那麼它會增長100m,而不是實際的使用量
VIRT=SWAP+RES
RES:resident memory usage 常駐內存
1、進程當前使用的內存大小,但不包括swap out
2、包含其他進程的共享
3、如果申請100m的內存,實際使用10m,它只增長10m,與VIRT相反
4、關於庫占用內存的情況,它只統計加載的庫文件所占內存大小
SHR:shared memory
1、除了自身進程的共享內存,也包括其他進程的共享內存
2、雖然進程只使用了幾個共享庫的函數,但它包含了整個共享庫的大小
3、計算某個進程所占的物理內存大小公式:RES – SHR
4、swap out後,它將會降下來
DATA
1、數據占用的內存。如果top沒有顯示,按f鍵可以顯示出來。
2、真正的該程序要求的數據空間,是真正在運行中要使用的
################################################################################
uptime查看平均負載
[root@localhost lib]# uptime
10:56:56 up 8 days, 54 min, 2 users, load average: 0.00, 0.03, 0.00
10:56:56 為現在時間; up表示服務器正在運行;服務器已經運行了多久;當前有2個用戶登錄,在過去1分鐘、5分鐘、15分鐘的系統平均負載值
#################################################################################
二、iostat查看io情況
查看TPS和吞吐量信息
[root@controller ~]#iostat -d -k 1 10
Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn
sda 19.00 0.00 112.00 0 112
sda1 0.00 0.00 0.00 0 0
sda2 0.00 0.00 0.00 0 0
sda3 0.00 0.00 0.00 0 0
sda4 0.00 0.00 0.00 0 0
sda5 3.00 0.00 16.00 0 16
sda6 0.00 0.00 0.00 0 0
sda7 16.00 0.00 96.00 0 96
tps:該設備每秒的傳輸次數,一次傳輸的意思是“一次I/O請求”
kB_read/s:每秒從設備讀取的數據量
kB_wrtn/s :每秒向設備寫入的數據量
kB_read :讀取的總數據量
kB_wrtn :寫入的總數量數據量
使用-x獲得更多信息
查看設備使用率(%util)、響應時間(await)
[root@controller ~]#iostat -d -x -k 1 10
Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await svctm %util
sda 0.00 22.00 0.00 18.00 0.00 160.00 17.78 0.07 3.78 3.78 6.80
sda1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
sda2 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
sda3 0.00 15.00 0.00 2.00 0.00 68.00 68.00 0.01 6.50 6.50 1.30
sda4 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
sda5 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
sda6 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
sda7 0.00 7.00 0.00 16.00 0.00 92.00 11.50 0.06 3.44 3.44 5.50
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
rkB/s: 每秒讀K字節數.是 rsect/s 的一半,因為每扇區大小為512字節.(需要計算)
wkB/s: 每秒寫K字節數.是 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 隊列是非空的.即 delta(use)/s/1000 (因為use的單位為毫秒)
(如果 %util 接近 100%,說明產生的I/O請求太多,I/O系統已經滿負荷,該磁盤可能存在瓶頸.
%util:在統計時間內所有處理IO時間,除以總共統計時間。例如,如果統計間隔1秒,該設備有0.8秒在處理IO,而0.2秒閒置,那麼該設備的%util = 0.8/1 = 80%,所以該參數暗示了設備的繁忙程度。一般地,如果該參數是100%表示設備已經接近滿負荷運行了(當然如果是多磁盤,即使%util是100%,因為磁盤的並發能力,所以磁盤使用未必就到了瓶頸)。
)
部署一個程序時(我測試的是一個實時上傳日志的程序),對系統的cpu、內存、io等都要有所考慮,保證系統高效的運行。
如果程序本身處理的包特別小,事件很多,壓力大且沒有間隔的話,占用CPU的資源會很多
如果用磁盤緩存,不用內存緩存的話,能夠支持斷點重傳,保證數據的可靠性上傳,如突然斷電等情況,存入磁盤緩存的數據等到恢復後會依然上傳,而不會丟失,但是相對的也會增加讀寫磁盤的次數,如果數據量比較小,速度還是可以忍受的。
####################################################################################
三、sar的使用
[root@localhost lib]# sar 1 3 每秒鐘顯示一次,總共顯示三次
Linux 2.6.32-71.el6.x86_64 (localhost.localdomain) 10/16/13 _x86_64_(1 CPU)
11:02:08 CPU %user %nice %system %iowait %steal %idle
11:02:09 all 1.00 0.00 0.00 0.00 0.00 99.00
11:02:10 all 0.00 0.00 0.99 0.00 0.00 99.01
11:02:11 all 0.00 0.00 0.00 0.00 0.00 100.00
Average: all 0.33 0.00 0.33 0.00 0.00 99.33
Linux 2.6.32-71.el6.x86_64 (localhost.localdomain) 內核版本(主機域名) ; 10/16/13 當前日期;_x86_64_(1 CPU)架構(cpu數目)
CPU:表示機器內所有的CPU;
%user 表示CPU的利用率;
%nice 表示CPU在用戶層優先級的百分比,0表示正常;
%system 表示當系統運行時,在用戶應用層上所占用的CPU百分比;
%iowait 表示請求硬盤I/0數據流出時,所占用CPU的百分比;
您可以CPU利用率的動態信息輸出到一個文本文件中,然後通過more 來查看。
[root@localhost ~]# sar -u 1 5 > sar000.txt
[root@localhost ~]# more sar000.txt
也可以輸出到一個二進制的文件中,然後通過sar來查看;
[root@localhost ~]# sar -u 1 5 -o sar002
[root@localhost ~]# sar -f sar002
注:如果您把數據通過-o filename 輸出到一個二進制的文件中,是不能用文件內容查看工具more 、less或cat來查看的,應該用sar工具來查看,要加-f參數;
查看網絡設備的吞吐情況;
比如我們讓數據每秒更新一次,總共更新十次;
[root@localhost ~]# sar -n DEV 2 5
時間 IFACE rxpck/s txpck/s rxbyt/s txbyt/s rxcmp/s txcmp/s rxmcst/s
第一字段:時間;
IFACE:設備名;
rxpck/s:每秒收到的包;
rxbyt/s:每秒收到的所有包的體積;
txbyt/s:每秒傳輸的所有包的體積;
rxcmp/s:每秒收到數據切割壓縮的包總數;
txcmp/s :每秒傳輸的數據切割壓縮的包的總數;
rxmcst/s: 每秒收到的多點傳送的包;
如果我們從事提取eth0設備(也就是網卡eth0)的信息;我們應該用grep 來過濾。然後再顯示出來;
[root@localhost ~]# sar -n DEV 2 5 |grep eth0
11時52分37秒 eth0 1.00 1.00 97.51 97.51 0.00 0.00 0.00
11時52分39秒 eth0 1.01 1.01 98.49 98.49 0.00 0.00 0.00
11時52分41秒 eth0 1.00 1.00 98.00 98.00 0.00 0.00 0.00
11時52分43秒 eth0 1.00 1.00 98.00 98.00 0.00 0.00 0.00
11時52分45秒 eth0 1.00 1.00 98.00 98.00 0.00 0.00 0.00
Average: eth0 1.00 1.00 98.00 98.00 0.00 0.00 0.00
如果想知道網絡設備錯誤報告,也就就是用來查看設備故障的。應該用EDEV;比如下面的例子;
[root@localhost ~]# sar -n EDEV 2 5
#####################################################################################
四、vmstat監控內存
[root@localhost lib]# vmstat 1 5
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
0 0 907500 71640 1268 15936 57 52 63 66 36 26 1 0 99 1 0
0 0 907500 71640 1268 15936 0 0 0 0 35 13 0 0 100 0 0
0 0 907500 71640 1268 15936 0 0 0 0 24 13 0 0 100 0 0
0 0 907500 71640 1268 15936 0 0 0 0 32 17 0 0 100 0 0
0 0 907500 71640 1268 15936 0 0 0 0 28 13 0 0 100 0 0
Procs
r: 等待運行的進程數 b: 處在非中斷睡眠狀態的進程數 w: 被交換出去的可運行的進程數。此數由 linux 計算得出,但 linux 並不耗盡交換空間
Memory
swpd: 虛擬內存使用情況,單位:KB
free: 空閒的內存,單位KB
buff: 被用來做為緩存的內存數,單位:KB
Swap
si: 從磁盤交換到內存的交換頁數量,單位:KB/秒
so: 從內存交換到磁盤的交換頁數量,單位:KB/秒
IO
bi: 發送到塊設備的塊數,單位:塊/秒
bo: 從塊設備接收到的塊數,單位:塊/秒
System
in: 每秒的中斷數,包括時鐘中斷
cs: 每秒的環境(上下文)切換次數
CPU
按 CPU 的總使用百分比來顯示
us: CPU 使用時間
sy: CPU 系統使用時間
id: 閒置時間
wa :CPU 空閒時間,在此期間系統有未完成的磁盤/NFS I/O 請求
如果 r經常大於 4 ,且id經常少於40,表示cpu的負荷很重。
如果pi,po 長期不等於0,表示內存不足。
如果disk 經常不等於0, 且在 b中的隊列 大於3, 表示 io性能不好
#######################################################################################
五、mpstat監控CPU
[root@localhost ~]# mpstat -P 0 2 5 查看第一個CPU,2秒鐘返回一次,總共返回5次
Linux 2.6.32-71.el6.x86_64 (localhost.localdomain) 10/16/13 _x86_64_(1 CPU)
11:28:32 CPU %usr %nice %sys %iowait %irq %soft %steal %guest %idle
11:28:34 0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
11:28:36 0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
11:28:38 0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
11:28:40 0 0.50 0.00 0.00 0.00 0.00 0.00 0.00 0.00 99.50
11:28:42 0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
Average: 0 0.10 0.00 0.00 0.00 0.00 0.00 0.00 0.00 99.90
[root@localhost ~]# mpstat -p 1 2 5 查看第二個CPU,2秒鐘返回一次,總共返回5次
……
[root@localhost ~]# mpstat 2 5 注:查看所有CPU,2秒鐘返回一次,總共返回5次
###########################################################################################
六、sadf與sar的結合使用
sdaf 能從二進制文件中提取sar所收集的數據,前提必須是sar收集到了數據
[root@localhost lib]# sar -u 2 5 -o sar003 將sar收集到的cpu信息存放到二進制文件sar003
Linux 2.6.32-71.el6.x86_64 (localhost.localdomain) 10/16/13 _x86_64_ (1 CPU)
11:31:12 CPU %user %nice %system %iowait %steal %idle
11:31:14 all 0.00 0.00 0.00 0.50 0.00 99.50
11:31:16 all 0.00 0.00 0.50 0.50 0.00 99.01
11:31:18 all 0.00 0.00 0.00 0.00 0.00 100.00
11:31:20 all 0.50 0.00 0.00 0.50 0.00 99.00
11:31:22 all 0.00 0.00 0.50 1.00 0.00 98.51
Average: all 0.10 0.00 0.20 0.50 0.00 99.20
[root@localhost lib]# sadf sar003 使用sadf去讀取,但是顯示有些凌亂
localhost.localdomain 2 1381894274 all%user 0.00
localhost.localdomain 2 1381894274 all%nice 0.00
localhost.localdomain 2 1381894274 all%system 0.00
localhost.localdomain 2 1381894274 all%iowait 0.50
localhost.localdomain 2 1381894274 all%steal 0.00
localhost.localdomain 2 1381894274 all%idle 99.50
localhost.localdomain 2 1381894276 all%user 0.00
localhost.localdomain 2 1381894276 all%nice 0.00
localhost.localdomain 2 1381894276 all%system 0.50
localhost.localdomain 2 1381894276 all%iowait 0.50
localhost.localdomain 2 1381894276 all%steal 0.00
localhost.localdomain 2 1381894276 all%idle 99.01
localhost.localdomain 2 1381894278 all%user 0.00
localhost.localdomain 2 1381894278 all%nice 0.00
localhost.localdomain 2 1381894278 all%system 0.00
localhost.localdomain 2 1381894278 all%iowait 0.00
localhost.localdomain 2 1381894278 all%steal 0.00
localhost.localdomain 2 1381894278 all%idle 100.00
localhost.localdomain 2 1381894280 all%user 0.50
localhost.localdomain 2 1381894280 all%nice 0.00
localhost.localdomain 2 1381894280 all%system 0.00
localhost.localdomain 2 1381894280 all%iowait 0.50
localhost.localdomain 2 1381894280 all%steal 0.00
localhost.localdomain 2 1381894280 all%idle 99.00
localhost.localdomain 2 1381894282 all%user 0.00
localhost.localdomain 2 1381894282 all%nice 0.00
localhost.localdomain 2 1381894282 all%system 0.50
localhost.localdomain 2 1381894282 all%iowait 1.00
localhost.localdomain 2 1381894282 all%steal 0.00
localhost.localdomain 2 1381894282 all%idle 98.51
[root@localhost lib]# sar -f sar003 用sar -f讀取比較人性化
Linux 2.6.32-71.el6.x86_64 (localhost.localdomain) 10/16/13 _x86_64_ (1 CPU)
11:31:12 CPU %user %nice %system %iowait %steal %idle
11:31:14 all 0.00 0.00 0.00 0.50 0.00 99.50
11:31:16 all 0.00 0.00 0.50 0.50 0.00 99.01
11:31:18 all 0.00 0.00 0.00 0.00 0.00 100.00
11:31:20 all 0.50 0.00 0.00 0.50 0.00 99.00
11:31:22 all 0.00 0.00 0.50 1.00 0.00 98.51
Average: all 0.10 0.00 0.20 0.50 0.00 99.20
[root@localhost lib]#
######################################################################################
七、pidstat對pid進程的監控
[root@localhost lib]# pidstat 2 5 2秒鐘輸出一次pid信息,總共輸出十次
Linux 2.6.32-71.el6.x86_64 (localhost.localdomain) 10/16/13 _x86_64_ (1 CPU)
11:36:00 PID %usr %system %guest %CPU CPU Command
11:36:02 21906 0.00 0.50 0.00 0.50 0 pidstat
11:36:02 PID %usr %system %guest %CPU CPU Command
11:36:04 21906 0.00 0.50 0.00 0.50 0 pidstat
11:36:04 PID %usr %system %guest %CPU CPU Command
11:36:06 15 0.00 0.50 0.00 0.50 0 kblockd/0
11:36:06 21609 5.53 1.51 0.00 7.04 0 httpd
11:36:06 PID %usr %system %guest %CPU CPU Command
11:36:08 26 0.00 2.01 0.00 2.01 0 kswapd0
11:36:08 21609 23.12 4.52 0.00 27.64 0 httpd
11:36:08 21906 0.50 0.50 0.00 1.01 0 pidstat
11:36:08 PID %usr %system %guest %CPU CPU Command
11:36:10 26 0.00 1.01 0.00 1.01 0 kswapd0
11:36:10 20586 0.50 0.50 0.00 1.01 0 mysqld
11:36:10 21609 20.60 0.50 0.00 21.11 0 httpd
11:36:10 21906 0.00 0.50 0.00 0.50 0 pidstat
Average: PID %usr %system %guest %CPU CPU Command
Average: 15 0.00 0.10 0.00 0.10 - kblockd/0
Average: 26 0.00 0.60 0.00 0.60 - kswapd0
Average: 20586 0.10 0.10 0.00 0.20 - mysqld
Average: 21609 9.83 1.30 0.00 11.13 - httpd
Average: 21906 0.10 0.40 0.00 0.50 - pidstat
這裡可以看到正在跑的進程及其所消耗的資源
[root@localhost lib]# pidstat -r -p 20586 使用r參數,pidstat將顯示各活動進程的內存使用統計
Linux 2.6.32-71.el6.x86_64 (localhost.localdomain) 10/16/13 _x86_64_ (1 CPU)
11:38:23 PID minflt/s majflt/s VSZ RSS %MEM Command
11:38:23 20586 0.04 0.00 475076 15040 1.47 mysqld
[root@localhost lib]# pidstat -r -p 20586 1 最後面的1表示一秒鐘刷新一次,如果不加則默認顯示一次。
Linux 2.6.32-71.el6.x86_64 (localhost.localdomain) 10/16/13 _x86_64_ (1 CPU)
11:38:31 PID minflt/s majflt/s VSZ RSS %MEM Command
11:38:32 20586 0.00 0.00 475076 15040 1.47 mysqld
11:38:33 20586 0.00 0.00 475076 15040 1.47 mysqld
11:38:34 20586 0.00 0.00 475076 15040 1.47 mysqld
11:38:35 20586 0.00 0.00 475076 15040 1.47 mysqld
11:38:36 20586 0.00 0.00 475076 15040 1.47 mysqld
minflt/s: 每秒次缺頁錯誤次數(minor page faults),次缺頁錯誤次數意即虛擬內存地址映射成物理內存地址產生的page fault次數
majflt/s: 每秒主缺頁錯誤次數(major page faults),當虛擬內存地址映射成物理內存地址時,相應的page在swap中,這樣的page fault為major page fault,一般在內存使用緊張時產生
VSZ: 該進程使用的虛擬內存(以kB為單位)
RSS: 該進程使用的物理內存(以kB為單位)
%MEM: 該進程使用內存的百分比
Command: 拉起進程對應的命令
pidstat -u 1
pidstat -r 1
pidstat -d 1
以上命令以1秒為信息采集周期,分別獲取cpu、內存和磁盤IO的統計信息
###################################################################################
八、dstat的全能
直接輸入dstat,會使用默認值,每秒顯示一次cpu、disk、net、paging、system的數據。等於dstat -cdngy 1
[root@localhost lib]# dstat
Terminal width too small, trimming output.
----total-cpu-usage---- -dsk/total- -net/total- ---paging-->
usr sys idl wai hiq siq| read writ| recv send| in out >
1 0 99 1 0 0| 127k 133k| 0 0 | 57k 52k>
0 0 100 0 0 0| 0 0 | 816B 134B| 0 0 >
0 0 100 0 0 0| 0 0 |1320B 278B| 0 0 >
0 0 100 0 0 0| 0 0 |1185B 150B| 0 0 >
1 0 99 0 0 0| 0 0 | 544B 150B| 0 0 >
0 0 100 0 0 0| 0 0 | 977B 150B| 0 0 >
0 0 100 0 0 0| 0 0 | 946B 150B| 0 0 >
0 0 100 0 0 0| 0 8192B|1879B 150B| 0 0 >
0 0 100 0 0 0| 0 0 |1047B 150B| 0 0 >
1 0 99 0 0 0| 0 0 | 692B 150B| 0 0 >
0 0 100 0 0 0| 0 0 |1669B 150B| 0 0 >
date && dstat -tclmdny 60 一分鐘監控一次
[root@localhost lib]# date && dstat -tclmdny 10 十秒鐘監控一次
Wed Oct 16 11:47:09 CST 2013
----system---- ----total-cpu-usage---- ---load-avg--- ------memory-usage----- -dsk/total- -net/total- ---system--
date/time |usr sys idl wai hiq siq| 1m 5m 15m | used buff cach free| read writ| recv send| int csw
16-10 11:47:09| 1 0 99 1 0 0| 0 0.02 0| 808M 12.3M 64.8M 112M| 127k 133k| 0 0 | 36 26
16-10 11:47:19| 0 0 100 0 0 0| 0 0.02 0| 808M 12.3M 64.8M 112M| 0 0 | 911B 12B| 26 10
16-10 11:47:29| 0 0 100 0 0 0| 0 0.02 0| 808M 12.3M 64.8M 112M| 0 0 | 928B 44B| 26 10
16-10 11:47:39| 0 0 100 0 0 0| 0 0.02 0| 808M 12.3M 64.8M 112M| 0 0 | 875B 43B| 26 10
16-10 11:47:49| 0 0 100 0 0 0| 0 0.02 0| 808M 12.3M 64.9M 112M| 25k 0 | 739B 26B| 25 11
[root@localhost lib]#
基本用法
dstat [-afv] [options..] [delay [count]]
常用選項如下:
dstat 3 #3秒輸出一條信息
dstat -N eth0 #顯示eth0網卡進出流量
dstat -l #顯示cpu在1、5、15分鐘的負載
dstat -r #顯示io讀寫流量
有關Dstat涉及的些參數含義說明:
Dstat options:
-c, --cpu 顯示CPU情況
-C 0,3,total include cpu0, cpu3 and total
-d, --disk 顯示磁盤情況
-D total,hda include hda and total
-g, --page enable page stats
-i, --int enable interrupt stats
-I 5,eth2 include int5 and interrupt used by eth2
-l, --load enable load stats
-m, --mem 顯示內存情況
-n, --net 顯示網絡情況
-N eth1,total 可以指定網絡接口
-p, --proc enable process stats
-s, --swap 顯示swap情況
-S swap1,total 可以指定多個swap
-t, --time enable time counter
-y, --sys enable system stats
--ipc 報告IPC消息隊列和信號量的使用情況
--lock enable lock stats
--raw enable raw stats
--tcp enable tcp stats
--udp enable udp stats
--unix enable unix stats
-M stat1,stat2 enable external stats
--mods stat1,stat2
-a, --all 使用-cdngy 缺省的就是這樣顯示
-f, --full 使用 -C, -D, -I, -N and -S 顯示
-v, --vmstat 使用-pmgdsc -D 顯示
--integer show integer values
--nocolor disable colors (implies --noupdate)
--noheaders 只顯示一次表頭以後就不顯示了,使用重定向寫入文件時很有用
--noupdate disable intermediate updates
--output file 寫入到CVS文件中
[root@localhost lib]# dstat --top-mem --top-io --top-cpu
--most-expensive- ----most-expensive---- -most-expensive-
memory process | i/o process | cpu process
httpd 196M|init 38k 11k|kswapd0 0.0
httpd 196M|sshd: root@ 181B 224B|
httpd 196M|sshd: root@ 59B 96B|
httpd 196M|sshd: root@ 59B 96B|mysqld 1.0
httpd 196M|sshd: root@ 59B 96B|
httpd 196M|sshd: root@ 59B 96B|
httpd 196M|sshd: root@ 59B 96B|
httpd 196M|sshd: root@ 59B 96B|