vmstat
vmstat是Virtual Memory Statistics(虛擬內存統計)的縮寫,利用vmstat命令可以對操作系統的內存信息、進程狀態和CPU活動等進行監視。但是只能對系統的整體情況進行統計,無法對某個進程進行深入分析。
【語法格式】
vmstat foption [delay fcountl]
vmstat [選項] [時間間隔(次數]
1)在vmstat命令及后面的選項里,每個元素之間都至少要有一個空格。
2)delay表示兩次輸出之間的間隔時間。
3)count表示按照delay指定的時間間隔統計的次數。
【選項說明】
-a 顯示活躍和非活躍內存
-f 顯示從系統啟動至今的fork進程數量
-m 顯示slab信息
-n 只在開始時顯示一次各字段名稱
-s 顯示內存相關統計信息及多種系統活動數量深
-d 顯示磁盤相關統計信息
-p 顯示指定磁盤分區統計信息
-S 使用指定單位顯示。參數有k、K、m、M,分別代表1000、1024、1000000、1048576字節(byte)。默認單位為K(1024byte)
-t 統計信息帶上時間戳
[root@lewen ~]# vmstat #<行如果省略“間隔時間”和“次數”的參數,則僅顯示一次報告后 procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu----- r b swpd free buff cache si so bi bo in cs us sy id wa st 2 0 0 2792792 2108 790956 0 0 15 20 61 146 0 0 99 0 0 以下是命令結果的詳細說明。 第1列:procs。 r列表示運行和等待CPU時間片的進程數。 b列表示正在等待資源的進程數。 第2列:memory。 swpd列表示使用虛擬內存的大小。 free列表示當前空閑的物理內存數量。 buff列表示buffers的內存數量。 cache列表示cache的內存數量。 第3列:swap。 si(swap in)列表示由磁盤調入內存,也就是內存進入內存交換區的數量。 so(swap out)列表示由內存調入磁盤,也就是內存交換區進入內存的數量。 第4列:I/O項顯示磁盤讀寫狀況。 bi列表示從塊設備讀入數據的總量(即讀磁盤)(塊/s)。 bo列表示寫入塊設備的數據總量(即寫磁盤)(塊/s)。 第5列:system顯示采集間隔內發生的中斷數。 in列表示在某一時間間隔中觀測到的每秒設備中斷數。 cs列表示每秒產生的上下文切換次數。 第6列:CPU項顯示了CPU的使用狀態。 us列顯示了用戶進程消耗的CPU時間百分比。 sy列顯示了系統(內核)進程消耗的CPU時間百分比。 id列顯示了CPU處在空閑狀態的時間百分比。 wa列顯示了I/0等待所占用的CPU時間百分比。 st列顯示了虛擬機占用的CPU時間的百分比。
顯示活躍和非活躍內存
[root@lewen ~]# vmstat -aS M 2 3 procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu----- r b swpd free inact active si so bi bo in cs us sy id wa st 2 0 0 2727 290 657 0 0 15 20 61 146 0 0 99 0 0 0 0 0 2727 290 657 0 0 0 0 53 118 0 0 100 0 0 0 0 0 2727 290 657 0 0 0 0 51 112 1 1 99 0 0 使用-a選項顯示活躍和非活躍內存時,所顯示的內容除去增加了inact和active之外,其他顯示內容與范例11-12相同。 memory列增加了inact和active兩列,其說明具體如下。 inact:非活躍的內存大小(當使用-a選項時顯示)。 active:活躍的內存大小(當使用-a選項時顯示)。
查看內存使用的詳細信息
[root@lewen ~]# vmstat -s
4026348 K total memory
440568 K used memory
673792 K active memory
297756 K inactive memory
2792680 K free memory
2108 K buffer memory
790992 K swap cache
這些信息分別來自於/proc/meminfo、/proc/stat和/proc/vmstat。
查看磁盤的讀/寫
[root@lewen ~]# vmstat -d disk- ------------reads------------ ------------writes----------- -----IO------ total merged sectors ms total merged sectors ms cur sec sda 8333 8 673201 140450 21689 1376 907042 61431 0 73 sr0 18 0 2056 678 0 0 0 0 0 0 dm-0 6339 0 648333 139872 23055 0 902906 75051 0 73 dm-1 90 0 4920 7 0 0 0 0 0 0 這些信息主要來自於/proc/diskstats。其中的merged表示一次來自於合並的寫/讀請求,系統一般會把多個連接/鄰近的讀/寫請求合並到一起來操作。
查看/dev/sda1磁盤的讀寫統計信息
[root@lewen ~]# vmstat -p /dev/sda1 sda1 reads read sectors writes requested writes 1799 12364 10 4136 這些信息主要來自於/proc/diskstats。各列的說明具體如下。 reads:來自於該分區的讀的次數。 read sectors:來自於該分區的讀扇區的次數。 writes:來自於該分區的寫的次數。 requested writes:來自於該分區的寫請求次數。
