Linux vmstat 命令詳解

2021-06-23 07:48:53 字數 2471 閱讀 1178

vmstat  

# vmstat 

是兩次執行之間的時間間隔,以秒為單位。  

是 vmstat 重複的次數。  

下面是當我們希望 vmstat:   

每隔 5 秒執行一次並在第 10 次執行後停止時的示例。  

每 5 秒之後都會輸出一行並顯示此時的統計資訊。  

# vmstat   5 10 

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 170988  22256   6796 322680    1    2   335    48   92   22  4  8 84  5  0  

該輸出顯示有關系統資源的資訊:  

procs  顯示程序數  

r      等待執行的程序。系統上的負載越多,等待執行 cpu 週期的程序數量越多。  

b      不可中斷睡眠的程序,也稱為「被阻塞」的程序。這些程序最有可能等待 i/o,但也可能等待其他事情。  

wpd,free,buff,cache顯示了記憶體值班  

wpd    虛擬記憶體或交換記憶體的數量(以 kb 為單位)  

free   可用物理記憶體的數量(以 kb 為單位)  

buff   用作緩衝區的記憶體數量(以 kb 為單位)  

cache  用作快取的物理記憶體數量(以 kb 為單位)  

si so 顯示了交換活動:  

si     將記憶體從磁碟交換回物理 ram 的速率(以 kb/秒為單位)  

so     將記憶體從物理 ram 交換到磁碟的速率(以 kb/秒為單位)  

bi,bo顯示了 i/o 活動:  

bi     系統向塊裝置傳送資料的速率(以塊/秒為單位)  

bo     系統從塊裝置中讀取資料的速率(以塊/秒為單位)  

in     系統每秒接收到的中斷數  

cs     在程序空間中切換上下文的速率(以數量/秒為單位)  

us,sy,id,wa 顯示了 cpu 負載的資訊:  

us     顯示花費在使用者程序中的 cpu 百分比。oracle 程序屬於這一類。  

sy     系統程序(如所有根程序)使用的 cpu 百分比  

id     可用 cpu 百分比  

wa     花費在「等待 i/o」上的百分比  

輸出的第一行是自從系統重新啟動以來所有指標的平均值。該行可忽略,因為它並不顯示當前狀態  

理想情況下,等待或阻塞的程序數量(位於「procs」下)應該為 0 或接近於 0。  

如果數值較高,則表示系統沒有足夠的資源(如 cpu、記憶體或 i/o)。  

「swap」下的資料表明交換是否過多。如果交換過多,則表明物理記憶體可能不足。應該減少記憶體需求或增加物理 ram。  

「io」下的資料表示往返於磁碟的資料流。這表明正在進行的磁碟活動量,這並不一定表明存在問題。  

如果您看到「proc」和「b」列(正在阻塞的程序)下有較大的數值和較高的 i/o,則可能出現了嚴重的 i/o 爭用問題。  

「cpu」標題下是最有用的資訊。「id」列顯示空閒 cpu。如果用 100 減去該數值,則會得到繁忙 cpu 的百分比。  

還記得本系列的另乙個部分中描述的 top 命令嗎?該命令還顯示 cpu 的空閒百分比數值。區別是:top 顯示每個 cpu 的空閒百分比,而 vmstat 顯示所有 cpu 的空閒百分比。  

vmstat 命令還顯示 cpu 使用情況的劃分:linux 系統使用多少、使用者程序使用多少以及等待 i/o 使用多少。  

通過該劃分,您可以確定 cpu 消耗的組成。如果系統 cpu 負載較高,能表明正在執行某個根程序(如備份)嗎?  

一段時間內的系統負載應該一致。如果系統顯示較高的數值,請使用 top 命令確定占有 cpu 的系統程序  

針對 oracle 使用者的用法  

oracle 程序(後台程序和伺服器程序)和使用者程序(sqlplus、apache 等)位於「us」下。  

如果該數值較高,則使用 top 來確定程序。如果「wa」列顯示較高的數值,則表明 i/o 系統無法跟上讀取或寫入的數量。  

有時這可能是因為在資料庫中進行大量更新,從而導致日誌切換以及後續的大量存檔程序。  

但是,如果它持續顯示乙個較大的數值,則表明可能存在 i/o 瓶頸。  

oracle 資料庫中的 i/o 瓶頸可能會造成嚴重的問題。與效能問題不同,慢速 i/o 可能導致控制檔案寫入速度緩慢,  

這會導致等待獲取控制檔案的程序加入佇列。如果等待超過 900 秒且等待者是關鍵程序(如 lgwr),則會關閉資料庫例項。  

如果您看到很多交換,可能是 sga 的太大,以至於物理記憶體容納不下。應該減小 sga 大小或增加物理記憶體。

Linux vmstat命令詳解

vmstat是乙個十分有用的linux系統監控工具,使用vmstat命令可以得到關於程序 記憶體 記憶體分頁 堵塞io traps及cpu活動的資訊。一 前言 二 虛擬記憶體執行原理 在系統中執行的每個程序都需要使用到記憶體,但不是每個程序都需要每時每刻使用系統分配的記憶體空間。當系統執行所需記憶體...

Linux vmstat 命令詳解

vmstat命令是最常見的linux unix監控工具,可以展現給定時間間隔的伺服器的狀態值,包括伺服器的cpu使用率,mem記憶體使用,vmswap虛擬記憶體交換情況,io讀寫情況。這個命令是檢視linux unix最好的命令,乙個是linux unix都支援,二是相比top,可以看到整個機器的c...

Linux vmstat命令詳解

vmstat命令是最常見的linux unix監控工具,可以展現給定時間間隔的伺服器的狀態值,包括伺服器的cpu使用率,記憶體使用,虛擬記憶體交換情況,io讀寫情況。這個命令是我檢視linux unix最喜愛的命令,乙個是linux unix都支援,二是相比top,我可以看到整個機器的cpu,記憶體...