您好,登錄后才能下訂單哦!
本篇內容主要講解“Linux中虛擬內存查看命令vmstat的過程”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“Linux中虛擬內存查看命令vmstat的過程”吧!
vmstat是一個查看虛擬內存使用狀況的工具,它可以看到服務器使用率,內存使用,虛擬內存交換情況,IO讀寫.相比top,可以看到整個機器的CPU,memory,IO的使用情況,而不是單單看到各個進程各值的使用率.
默認情況下,vmstat命令并沒有安裝,需要安裝sysstat包,該包里含有vmstat程序.
一般經常使用的該命令后加2個數字參數,第一個參數是采樣的時間間隔(秒),第二個參數是采樣的次數.
基本參數:
vmstat [-a] [-n] [-t] [-S unit] [delay [ count]]
[-a]:顯示活躍和非活躍內存
[-n]:只在開始時顯示一次字段名,針對多次收集信息的情況輸出人性化一點
[-t]:在每條信息的末尾,顯示收集信息的時間
[-S unit]:使用指定單位顯示。參數有 k 、K 、m 、M ,分別代表1000、1024、1000000、1048576字節(byte)。默認單位為K(1024 bytes)
[delay [count]]:delay是信息收集間隔,count是信息收集的次數
vmstat [-s] [-n] [-S unit]
[-s]:顯示內存相關的統計信息
vmstat [-m] [-n] [delay [ count]]
[-m]:顯示slabinfo,slabinfo信息記錄在/proc/slabinfo文件中。slab是linux的一個內存分配機制。
vmstat [-d] [-n] [delay [ count]]
[-d]:顯示相關磁盤的統計信息
注:這個跟樓下-p的區別統計信息的不同、統計對象這個是磁盤-p是子分區、這個不能指定全部輸出
vmstat [-p disk partition] [-n] [delay [ count]]
[-p disk partition]:顯示磁盤子分區的統計信息,這里沒有iostat的信息那么有用
vmstat [-f]
[-f]:開機啟動至今的fork數量 注:這里的fork應該是內核的fork()函數,在父進程中,fork返回新創建子進程的進程ID
vmstat [-V]
[-V]:版本信息
示例
代碼如下:
root@192.168.22.54:~# vmstat 2 10
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
13 0 0 542604 323512 12356052 0 0 0 2 0 0 17 18 65 0 0
42 0 0 552500 323512 12356112 0 0 0 0 18669 49903 42 45 14 0 0
72 0 0 563416 323512 12356132 0 0 0 0 18394 49895 41 43 16 0 0
73 0 0 570924 323512 12356164 0 0 0 0 19666 51678 37 41 22 0 0
13 0 0 581208 323512 12356204 0 0 0 280 18990 49541 43 43 15 0 0
18 0 0 587148 323512 12356228 0 0 0 32 19360 49203 37 39 24 0 0
27 0 0 520016 323512 12356292 0 0 0 0 20423 52865 39 40 21 0 0
18 0 0 527512 323512 12356336 0 0 0 0 19613 53052 42 43 16 0 0
23 0 0 538608 323512 12356376 0 0 0 0 18860 50645 41 42 18 0 0
80 0 0 548608 323512 12356444 0 0 0 0 19781 50917 41 42 17 0 0
根據以上實例,下面是字段說明:
Procs(進程)
r:表示運行隊列的進程數量,換句話說就是多少個進程真正分配到cpu.服務器配置cpu為8核,這里由于服務器運行了大量的程序在跑,當這個值超過了cpu數目,且id較小,就可能會出現cpu瓶頸.運行隊列過大,表示cpu很繁忙,一般會造成cpu使用率過高.
b:等待io的進程數.
Memory
swpd:虛擬內存使用情況,單位KB
free:空閑的內存
buff:用作緩沖的內存大小,內存中的一部分,某程序代碼緩存,不可移到swap里去.
cache:用作緩存的內存大小,數據緩存,允許交給swap
Swap
si:從磁盤交換到內存的交換頁數量,每秒從磁盤讀入虛擬內存的大小,如果這個值大于0,表示物理內存不夠用或者內存泄露.
so:從內存交換到磁盤的交換頁數量,每秒虛擬內存寫入磁盤的大小,如果這個值大于0,表示物理內存不夠用或者內存泄露.
bi:Blocks received from a block device (blocks/s).每秒從塊設備接收到的塊數,即讀塊設備。
bo:Blocks sent to a block device (blocks/s).每秒發送到塊設備的塊數,即寫塊設備。
System
in:每秒中斷數,包括時鐘中斷.
cs:每秒上下文切換數.這個值越小越好.比如每次調用系統函數,線程的切換,代碼就會進入內核空間,導致上下文切換,次數過多表示cpu大部分浪費在上下文切換,導致cpu沒有充分利用.
CPU(以百分比表示)
us:用戶進程執行的時間,用戶cpu使用率,操作運算等.
sy:系統進程執行的時間,系統cpu使用率,讀取硬盤,操作硬件等.
id:空閑時間(包括IO等待時間)
wa:等待IO時間
到此,相信大家對“Linux中虛擬內存查看命令vmstat的過程”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。