linux高階工具命令 -- vmstat介紹
透過STATSPACK收集伺服器資訊,主要透過收集VMSTAT的資訊來展現伺服器狀況。VMSTAT工具是最常見的UNIX監控工具,可以展現給定時間間隔的伺服器的狀態值。
一般VMSTAT工具的使用是透過兩個數字引數來完成的,第一個引數是取樣的時間間隔數,單位是秒,第二個引數是取樣的次數。如:
[oracle@localhost oracle]$vmstat 2
procs -----------memory---------- ---swap-- -----io---- --system-- ----cpu----
r b swpd free buff cache si so bi bo in cs us sy id wa
0 0 195804 3812 40616 1598656 0 0 0 0 1024 66976 0 0 100 0
0 0 195804 3812 40616 1598656 0 0 0 12 1048 66961 0 0 100 0
0 0 195804 3812 40616 1598656 0 0 0 28 1054 67067 0 0 100 0
0 0 195804 3812 40616 1598656 0 0 0 0 1020 66988 0 0 100 0
(注:目前系統幾乎空閒,並且不同作業系統VMSTAT輸出內容有所不同)
目前說來,對於伺服器監控有用處的度量主要有:
r(執行佇列)
pi(頁匯入)
us(使用者CPU)
sy(系統CPU)
id(空閒)
(如果r經常大於4 ,且id經常少於40,表示cpu的負荷很重。)
(如果bi,bo 長期不等於0,表示記憶體不足)
透過VMSTAT識別CPU瓶頸
r(執行佇列)展示了正在執行和等待CPU資源的任務個數。當這個值超過了CPU數目,就會出現CPU瓶頸了
獲得CPU個數的命令(LINUX環境):
cat /proc/cpuinfo|grep processor|wc -l
當r值超過了CPU個數,就會出現CPU瓶頸,解決辦法大體幾種:
1. 最簡單的就是增加CPU個數
2. 透過調整任務執行時間,如大任務放到系統不繁忙的情況下進行執行,進爾平衡系統任務
3. 調整已有任務的優先順序
透過VMSTAT識別CPU滿負荷
首先需要宣告一點的是,vmstat中CPU的度量是百分比的。當us+sy的值接近100的時候,表示CPU正在接近滿負荷工作。但要注意的是,CPU 滿負荷工作並不能說明什麼,UNIX總是試圖要CPU儘可能的繁忙,使得任務的吞吐量最大化。唯一能夠確定CPU瓶頸的還是r(執行佇列)的值。
透過VMSTAT識別RAM瓶頸
資料庫伺服器都只有有限的RAM,出現記憶體爭用現象是Oracle的常見問題。
首先察看RAM的數量,命令如下(LINUX環境):
[oracle@oracle-db02 ~]$ free
total used free shared buffers cached
Mem: 2074924 2071112 3812 0 40616 1598656
-/+ buffers/cache: 431840 1643084
Swap: 3068404 195804 2872600
當然可以使用top等其他命令來顯示RAM。
當記憶體的需求大於RAM的數量,伺服器啟動了虛擬記憶體機制,透過虛擬記憶體,可以將RAM段移到SWAP DISK的特殊磁碟段上,這樣會 出現虛擬記憶體的頁匯出和頁匯入現象,頁匯出並不能說明RAM瓶頸,虛擬記憶體系統經常會對記憶體段進行頁匯出,但頁匯入操作就表明了伺服器需要更多的記憶體了, 頁匯入需要從SWAP DISK上將記憶體段複製回RAM,導致伺服器速度變慢。
解決的辦法有幾種:
1. 最簡單的,加大RAM
2. 改小SGA,使得對RAM需求減少
3. 減少RAM的需求(如:減少PGA)
一般VMSTAT工具的使用是透過兩個數字引數來完成的,第一個引數是取樣的時間間隔數,單位是秒,第二個引數是取樣的次數。如:
[oracle@localhost oracle]$vmstat 2
procs -----------memory---------- ---swap-- -----io---- --system-- ----cpu----
r b swpd free buff cache si so bi bo in cs us sy id wa
0 0 195804 3812 40616 1598656 0 0 0 0 1024 66976 0 0 100 0
0 0 195804 3812 40616 1598656 0 0 0 12 1048 66961 0 0 100 0
0 0 195804 3812 40616 1598656 0 0 0 28 1054 67067 0 0 100 0
0 0 195804 3812 40616 1598656 0 0 0 0 1020 66988 0 0 100 0
(注:目前系統幾乎空閒,並且不同作業系統VMSTAT輸出內容有所不同)
目前說來,對於伺服器監控有用處的度量主要有:
r(執行佇列)
pi(頁匯入)
us(使用者CPU)
sy(系統CPU)
id(空閒)
(如果r經常大於4 ,且id經常少於40,表示cpu的負荷很重。)
(如果bi,bo 長期不等於0,表示記憶體不足)
透過VMSTAT識別CPU瓶頸
r(執行佇列)展示了正在執行和等待CPU資源的任務個數。當這個值超過了CPU數目,就會出現CPU瓶頸了
獲得CPU個數的命令(LINUX環境):
cat /proc/cpuinfo|grep processor|wc -l
當r值超過了CPU個數,就會出現CPU瓶頸,解決辦法大體幾種:
1. 最簡單的就是增加CPU個數
2. 透過調整任務執行時間,如大任務放到系統不繁忙的情況下進行執行,進爾平衡系統任務
3. 調整已有任務的優先順序
透過VMSTAT識別CPU滿負荷
首先需要宣告一點的是,vmstat中CPU的度量是百分比的。當us+sy的值接近100的時候,表示CPU正在接近滿負荷工作。但要注意的是,CPU 滿負荷工作並不能說明什麼,UNIX總是試圖要CPU儘可能的繁忙,使得任務的吞吐量最大化。唯一能夠確定CPU瓶頸的還是r(執行佇列)的值。
透過VMSTAT識別RAM瓶頸
資料庫伺服器都只有有限的RAM,出現記憶體爭用現象是Oracle的常見問題。
首先察看RAM的數量,命令如下(LINUX環境):
[oracle@oracle-db02 ~]$ free
total used free shared buffers cached
Mem: 2074924 2071112 3812 0 40616 1598656
-/+ buffers/cache: 431840 1643084
Swap: 3068404 195804 2872600
當然可以使用top等其他命令來顯示RAM。
當記憶體的需求大於RAM的數量,伺服器啟動了虛擬記憶體機制,透過虛擬記憶體,可以將RAM段移到SWAP DISK的特殊磁碟段上,這樣會 出現虛擬記憶體的頁匯出和頁匯入現象,頁匯出並不能說明RAM瓶頸,虛擬記憶體系統經常會對記憶體段進行頁匯出,但頁匯入操作就表明了伺服器需要更多的記憶體了, 頁匯入需要從SWAP DISK上將記憶體段複製回RAM,導致伺服器速度變慢。
解決的辦法有幾種:
1. 最簡單的,加大RAM
2. 改小SGA,使得對RAM需求減少
3. 減少RAM的需求(如:減少PGA)
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/35489/viewspace-85087/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Vmstat 命令詳細介紹
- linux vmstat命令Linux
- React 高階元件介紹React元件
- 複製管理工具介紹——高階複製
- Linux高階命令Linux
- 每日Linux命令(2):vmstatLinux
- linux 監測命令(vmstat)Linux
- vmstat linux命令詳解Linux
- Linux vmstat命令基本使用Linux
- Linux高階命令——cut命令用法Linux
- javascript高階函式的介紹JavaScript函式
- 「Oracle」Oracle高階查詢介紹Oracle
- Linux xargs命令介紹Linux
- linux xhost命令介紹Linux
- linux ps命令介紹Linux
- Linux yum 命令介紹Linux
- Linux top命令介紹Linux
- Linux make命令介紹Linux
- Hadoop進階命令使用介紹Hadoop
- Linux 命令使用筆記【vmstat】Linux筆記
- vmstat命令
- javascript高階函式簡單介紹JavaScript函式
- 每天一個 Linux 命令(46): vmstat 命令Linux
- Linux useradd 命令介紹Linux
- Linux重啟命令介紹Linux
- Linux下more命令高階用法Linux
- Linux下mv命令高階用法Linux
- Linux vmstat 命令 - 報告虛擬記憶體統計的工具Linux記憶體
- (轉)vmstat 命令
- Linux 關機命令介紹shutdownLinux
- linux基本命令介紹(二)Linux
- linux基本命令介紹(一)Linux
- 【Linux】jq 命令介紹和使用Linux
- linux vi命令常用方法介紹Linux
- Linux常用命令介紹Linux
- MyCAT的命令列監控工具介紹命令列
- 超實用的 Linux 高階命令!Linux
- javascript中關於匿名函式高階介紹JavaScript函式