linux系統巡檢常用命令

搞系統、運維、數據庫的兄弟們應該都很清楚,常常需要查看系統運行的情況,簡單列幾項:

1、vmstat 命令

     vmstat是Virtual Meomory Statistics(虛擬內存統計)的縮寫,可對操作系統的虛擬內存、進程、CPU活動進行監控。他是對系統的整體情況進行統計,不足之處是無法對某個進程進行深入分析。通常使用vmstat 5 5(每隔5秒鐘生成一次數據,一共生成5次數據)命令測試。

[oracle@orahost ~]$ vmstat 5 5
procs -----------memory---------- ---swap-- -----io---- --system-- ----cpu----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in    cs us sy id wa
 0  0      0 876420  51128 1019032    0    0     0     2    1     1  0  0 100  0
 0  0      0 876484  51128 1019032    0    0     0    37 1070   137  0  0 100  0
 0  0      0 876484  51128 1019032    0    0     0    12 1201   137  0  0 100  0
 0  0      0 876484  51128 1019032    0    0     0    22 1110   138  0  0 100  0
 0  0      0 876484  51128 1019032    0    0     0    22 1163   136  0  0 100  0

說明(六部分):

(1)進程procs:
r:在運行隊列中等待的進程數 。
b:在等待io的進程數 。

(2)Linux 內存監控內存memoy:
swpd:現時可用的交換內存(單位KB)。
free:空閒的內存(單位KB)。
buff: 緩衝去中的內存數(單位:KB)。
cache:被用來做爲高速緩存的內存數(單位:KB)。

(3) Linux 內存監控swap交換頁面
si: 從磁盤交換到內存的交換頁數量,單位:KB/秒。
so: 從內存交換到磁盤的交換頁數量,單位:KB/秒。

(4)Linux 內存監控 io塊設備:
bi: 發送到塊設備的塊數,單位:塊/秒。
bo: 從塊設備接收到的塊數,單位:塊/秒。

(5)Linux 內存監控system系統:
in: 每秒的中斷數,包括時鐘中斷。
cs: 每秒的環境(上下文)轉換次數。

(6)Linux 內存監控cpu中央處理器:
us:用戶進程使用的時間 。以百分比表示。
sy:系統進程使用的時間。 以百分比表示。
id:中央處理器的空閒時間 。以百分比表示

假如 r經常大於 4 ,且id經常小於40,表示中央處理器的負荷很重。 假如bi,bo 長期不等於0,表示物理內存容量太小

2、free命令檢測內存狀況

注意查看SWAP使用情況

[oracle@orahost ~]$ free -m
                    total       used       free     shared    buffers     cached
Mem:          2025       1170        855          0         49        995
-/+ buffers/cache:        125       1900
Swap:         4094          0       4094

3、iostat

報告計算機輸入/輸出設備的統計信息

[oracle@orahost ~]$ iostat -x
Linux 2.6.9-42.ELsmp (orahost.orahost)  04/02/2002

avg-cpu:  %user   %nice    %sys %iowait   %idle
           0.01    0.00    0.02    0.01   99.96

Device:    rrqm/s wrqm/s   r/s   w/s  rsec/s  wsec/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await  svctm  %util
hdb          0.00    0.62   0.00  0.29    0.11    7.27     0.05     3.64    24.81     0.00    1.66   0.65   0.02

幾個參數比較重要:
%util:      一秒中有百分之多少的時間用於 I/O 操作,或者說一秒中有多少時間 I/O 隊列是非空的
svctm:   平均每次設備I/O操作的服務時間
await:    平均每次設備I/O操作的等待時間
avgqu-sz: 平均I/O隊列長度

如果%util接近100%,表明i/o請求太多,i/o系統已經滿負荷,磁盤可能存在瓶頸,一般%util大於70%,i/o壓力就比較大,讀取速度有較多的wait.同時可以結合vmstat查看查看b參數(等待資源的進程數)和wa參數(IO等待所佔用的CPU時間的百分比,高過30%時IO壓力高)。
await 的大小一般取決於服務時間(svctm) 以及 I/O 隊列的長度和 I/O 請求的發出模式。如果 svctm 比較接近 await,說明 I/O 幾乎沒有等待時間;如果 await 遠大於 svctm,說明 I/O 隊列太長,應用得到的響應時間變慢。

4、sar 命令

比如系統運行速度突然變慢,系統容易死機或者主機所帶的終端常出現死機,這時我們常常猜測,是硬盤空間太小,還是內存不足?I/O出現瓶頸,或者是系統的核心參數出了問題?這時,我們應該考慮使用系統給我們提供的sar命令來對系統作一個瞭解,

sar  -u 5 3   對cpu利用率,每5秒採樣一次,連續採樣3次

[oracle@orahost ~]$ sar  -u 5 3
Linux 2.6.9-42.ELsmp (orahost.orahost)  04/02/2002

06:45:34 PM       CPU     %user     %nice   %system   %iowait     %idle
06:45:39 PM       all      0.00      0.00      0.10      0.10     99.80
06:45:44 PM       all      0.00      0.00      0.00      0.00    100.00
06:45:49 PM       all      0.00      0.00      0.00      0.00    100.00
Average:              all      0.00      0.00      0.03      0.03     99.93

參數:
-A:所有報告的總和。
-u:CPU利用率
-v:進程、I節點、文件和鎖表狀態。
-d:硬盤使用報告。
-r:沒有使用的內存頁面和硬盤塊。
-g:串口I/O的情況。
-b:緩衝區使用情況。
-a:文件讀寫情況。
-c:系統調用情況。
-R:進程的活動情況。
-y:終端設備活動情況。
-w:系統交換活動。

 

(待續)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章