vmstat是Virtual Meomory Statistics(虛擬內存統計)的縮寫,可對操做系統的虛擬內存、進程、IO讀寫、CPU活動等進行監視。它是對系統的總體狀況進行統計,不足之處是沒法對某個進程進行深刻分析。數據庫
Procs緩存
r: The number of processes waiting for run time.服務器
等待運行的進程數。若是等待運行的進程數越多,意味着CPU很是繁忙。另外,若是該參數長期大於和等於邏輯cpu個數,則CPU資源可能存在較大的瓶頸。app
b: The number of processes in uninterruptible sleep.函數
處在非中斷睡眠狀態的進程數。意味着進程被阻塞。主要是指被資源阻塞的進程對列數(好比IO資源、頁面調度等),當這個值較大時,須要根據應用程序來進行分析,好比數據庫產品,中間件應用等。性能
Memorythis
swpd: the amount of virtual memory used.spa
已使用的虛擬內存大小。若是虛擬內存使用較多,可能系統的物理內存比較吃緊,須要採起合適的方式來減小物理內存的使用。swapd不爲0,並不意味物理內存吃緊,若是swapd沒變化,si、so的值長期爲0,這也是沒有問題的操作系統
free: the amount of idle memory.code
空閒的物理內存的大小
buff: the amount of memory used as buffers.
用來作buffer(緩存,主要用於塊設備緩存)的內存數,單位:KB
cache: the amount of memory used as cache.
用來作cache(緩存,主要用於緩存文件)的內存,單位:KB
inact: the amount of inactive memory. (-a option)
inactive memory的總量
active: the amount of active memory. (-a option)
active memroy的總量。
Swap
si: Amount of memory swapped in from disk (/s).
從磁盤交換到內存的交換頁數量,單位:KB/秒。
so: Amount of memory swapped to disk (/s).
從內存交換到磁盤的交換頁數量,單位:KB/秒
內存夠用的時候,這2個值都是0,若是這2個值長期大於0時,系統性能會受到影響,磁盤IO和CPU資源都會被消耗。
當看到空閒內存(free)不多的或接近於0時,就認爲內存不夠用了,這個是不正確的。不能光看這一點,還要結合si和so,
若是free不多,可是si和so也不多(大多時候是0),那麼不用擔憂,系統性能這時不會受到影響的。
當內存的需求大於RAM的數量,服務器啓動了虛擬內存機制,經過虛擬內存,能夠將RAM段移到SWAP DISK的特殊磁盤段上,
這樣會 出現虛擬內存的頁導出和頁導入現象,頁導出並不能說明RAM瓶頸,虛擬內存系統常常會對內存段進行頁導出,
但頁導入操做就代表了服務器須要更多的內存了, 頁導入須要從SWAP DISK上將內存段複製回RAM,致使服務器速度變慢。
IO
bi: Blocks received from a block device (blocks/s).
每秒從塊設備接收到的塊數,單位:塊/秒 也就是讀塊設備。
bo: Blocks sent to a block device (blocks/s).
每秒發送到塊設備的塊數,單位:塊/秒 也就是寫塊設備。
System
in: The number of interrupts per second, including the clock.
每秒的中斷數,包括時鐘中斷
cs: The number of context switches per second.
每秒的環境(上下文)切換次數。好比咱們調用系統函數,就要進行上下文切換,而過多的上下文切換會浪費較多的cpu資源,這個數值應該越小越好。
CPU
These are percentages of total CPU time.
us: Time spent running non-kernel code. (user time, including nice time)
用戶CPU時間(非內核進程佔用時間)(單位爲百分比)。 us的值比較高時,說明用戶進程消耗的CPU時間多
sy: Time spent running kernel code. (system time)
系統使用的CPU時間(單位爲百分比)。sy的值高時,說明系統內核消耗的CPU資源多,這並非良性表現,咱們應該檢查緣由。
id: Time spent idle. Prior to Linux 2.5.41, this includes IO-wait time.
空閒的CPU的時間(百分比),在Linux 2.5.41以前,這部分包含IO等待時間。
wa: Time spent waiting for IO. Prior to Linux 2.5.41, shown as zero.
等待IO的CPU時間,在Linux 2.5.41以前,這個值爲0 .這個指標意味着CPU在等待硬盤讀寫操做的時間,用百分比表示。wait越大則機器io性能就越差。說明IO等待比較嚴重,這可能因爲磁盤大量做隨機訪問形成,也有可能磁盤出現瓶頸(塊操做)。
st: Time stolen from a virtual machine. Prior to Linux 2.6.11, unknown.
vmstat 1 10
Procs
r: The number of processes waiting for run time.
等待運行的進程數。若是等待運行的進程數越多,意味着CPU很是繁忙。另外,若是該參數長期大於和等於邏輯cpu個數,則CPU資源可能存在較大的瓶頸。
b: The number of processes in uninterruptible sleep.
處在非中斷睡眠狀態的進程數。意味着進程被阻塞。主要是指被資源阻塞的進程對列數(好比IO資源、頁面調度等),當這個值較大時,須要根據應用程序來進行分析,好比數據庫產品,中間件應用等。
Memory
swpd: the amount of virtual memory used.
已使用的虛擬內存大小。若是虛擬內存使用較多,可能系統的物理內存比較吃緊,須要採起合適的方式來減小物理內存的使用。swapd不爲0,並不意味物理內存吃緊,若是swapd沒變化,si、so的值長期爲0,這也是沒有問題的
free: the amount of idle memory.
空閒的物理內存的大小
buff: the amount of memory used as buffers.
用來作buffer(緩存,主要用於塊設備緩存)的內存數,單位:KB
cache: the amount of memory used as cache.
用來作cache(緩存,主要用於緩存文件)的內存,單位:KB
inact: the amount of inactive memory. (-a option)
inactive memory的總量
active: the amount of active memory. (-a option)
active memroy的總量。
Swap
si: Amount of memory swapped in from disk (/s).
從磁盤交換到內存的交換頁數量,單位:KB/秒。
so: Amount of memory swapped to disk (/s).
從內存交換到磁盤的交換頁數量,單位:KB/秒
內存夠用的時候,這2個值都是0,若是這2個值長期大於0時,系統性能會受到影響,磁盤IO和CPU資源都會被消耗。
當看到空閒內存(free)不多的或接近於0時,就認爲內存不夠用了,這個是不正確的。不能光看這一點,還要結合si和so,
若是free不多,可是si和so也不多(大多時候是0),那麼不用擔憂,系統性能這時不會受到影響的。
當內存的需求大於RAM的數量,服務器啓動了虛擬內存機制,經過虛擬內存,能夠將RAM段移到SWAP DISK的特殊磁盤段上,
這樣會 出現虛擬內存的頁導出和頁導入現象,頁導出並不能說明RAM瓶頸,虛擬內存系統常常會對內存段進行頁導出,
但頁導入操做就代表了服務器須要更多的內存了, 頁導入須要從SWAP DISK上將內存段複製回RAM,致使服務器速度變慢。
IO
bi: Blocks received from a block device (blocks/s).
每秒從塊設備接收到的塊數,單位:塊/秒 也就是讀塊設備。
bo: Blocks sent to a block device (blocks/s).
每秒發送到塊設備的塊數,單位:塊/秒 也就是寫塊設備。
System
in: The number of interrupts per second, including the clock.
每秒的中斷數,包括時鐘中斷
cs: The number of context switches per second.
每秒的環境(上下文)切換次數。好比咱們調用系統函數,就要進行上下文切換,而過多的上下文切換會浪費較多的cpu資源,這個數值應該越小越好。
CPU
These are percentages of total CPU time.
us: Time spent running non-kernel code. (user time, including nice time)
用戶CPU時間(非內核進程佔用時間)(單位爲百分比)。 us的值比較高時,說明用戶進程消耗的CPU時間多
sy: Time spent running kernel code. (system time)
系統使用的CPU時間(單位爲百分比)。sy的值高時,說明系統內核消耗的CPU資源多,這並非良性表現,咱們應該檢查緣由。
id: Time spent idle. Prior to Linux 2.5.41, this includes IO-wait time.
空閒的CPU的時間(百分比),在Linux 2.5.41以前,這部分包含IO等待時間。
wa: Time spent waiting for IO. Prior to Linux 2.5.41, shown as zero.
等待IO的CPU時間,在Linux 2.5.41以前,這個值爲0 .這個指標意味着CPU在等待硬盤讀寫操做的時間,用百分比表示。wait越大則機器io性能就越差。說明IO等待比較嚴重,這可能因爲磁盤大量做隨機訪問形成,也有可能磁盤出現瓶頸(塊操做)。
st: Time stolen from a virtual machine. Prior to Linux 2.6.11, unknown.