linux I/O 瓶頸監控

pingley發表於2012-03-16
linux I/O 瓶頸監控
[oracle@zeng ~]$ iostat -xd
Linux 2.6.32-71.el6.i686 (zeng)         03/16/2012      _i686_  (1 CPU)
Device:         rrqm/s   wrqm/s     r/s     w/s   rsec/s   wsec/s avgrq-sz avgqu-sz   await  svctm  %util
scd0              0.21     0.00    0.21    0.00     1.66     0.00     8.00     0.00    2.23   2.23   0.05
sda              18.43     0.53   12.94    2.18   761.75    21.56    51.80     0.20   13.03   5.53   8.36
-x 表示顯示擴充套件的統計資訊。
-d 表示顯示裝置的利用報表。
欄位解釋:
Device    表示裝置名或者分割槽名。
rrqm/s    每秒總計的等待佇列中寫裝置的請求數量。
wrqm/s    每秒總計的等待佇列中讀裝置的請求數量。
r/s       表示每秒的讀請求。
w/s       表示每秒的寫請求。
rsec/s    每秒讀扇區的數量。
wsec/s    每秒寫扇區的數量。
avgrq-sz  平均每次I/O請求的扇區數。
avgqu-sz  平均的I/O請求的佇列長度。
await     平均每次I/O請求的平均響應時間(毫秒)。
svctm     平均每次I/O請求的服務時間(毫秒).
%util     I/O請求所佔用的CPU時間百分比。如果該值接近100%,意味著I/O裝置已經滿負荷工作。
如果發現每秒的讀寫數量很高,I/O請求時間佔用的CPU時間接近100%,說明出現了I/O瓶頸.
[oracle@zeng ~]$ iostat
Linux 2.6.32-71.el6.i686 (zeng)         03/16/2012      _i686_  (1 CPU)
avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.56    0.00    4.51    0.50    0.00   94.42
Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn
scd0              0.03         0.21         0.00        384          0
sda               2.11        99.81         3.73     179708       6722
iostat 不帶任何選項預設輸出的是系統自上次啟動以來的平均統計資訊。第一部分輸出的是CPU利用率情況。第二部分
輸出的是磁碟I/O利用率相關的情況。可以透過指定時間間隔實時的監控I/O的狀況,甚至監控次數來獲得更加精細的報表。
oracle@zeng ~]$ iostat -d 5
Linux 2.6.32-71.el6.i686 (zeng)         03/16/2012      _i686_  (1 CPU)
Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn
scd0              0.02         0.18         0.00        384          0
sda               1.82        85.40         3.32     179708       6986
欄位解釋:
tps         表示I/O裝置每秒的I/O傳送次數。傳送指的是一次I/O請求。多個邏輯上的I/O請求可以合併為一個I/O請求。
所有一次傳送對應的邏輯請求的數量是不確定的。
Blk_read/s  表示每秒從裝置上讀取的block數量。block的大小等於磁碟扇區的大小.kernel 2.4及其以後是512 bytes.
Blk_wrtn/s  表示每秒寫入裝置的block數量.
Blk_read    表示讀取的block的總量。
Blk_wrtn    表示寫入的block的總量。
[oracle@zeng ~]$ iostat 3 3 
Linux 2.6.32-71.el6.i686 (zeng)         03/16/2012      _i686_  (1 CPU)
avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.36    0.04    3.58    0.89    0.00   95.13
Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn
scd0              0.02         0.13         0.00        384          0
sda               4.03       109.23         7.45     318468      21730
每3秒報告一次I/O 狀態。次數是3次。可以把上面的資訊重定向輸出到檔案。
使用sar 進行實時,當前,歷史I/O監控。
檢視昨天的I/O 狀態。
[oracle@zeng ~]$ sar -d -f /var/log/sa/sa15
Linux 2.6.32-71.el6.i686 (zeng)         03/15/2012      _i686_  (1 CPU)
09:51:03 AM       LINUX RESTART
10:00:01 AM       DEV       tps  rd_sec/s  wr_sec/s  avgrq-sz  avgqu-sz     await     svctm     %util
10:10:01 AM   dev11-0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
10:10:01 AM    dev8-0      5.14    164.58     54.68     42.69      0.02      4.70      4.15      2.13
10:20:01 AM   dev11-0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
10:20:01 AM    dev8-0      4.06      2.96     50.26     13.11      0.03      6.45      6.24      2.53
10:30:01 AM   dev11-0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
10:30:01 AM    dev8-0      2.88      0.09     38.64     13.43      0.02      5.47      5.31      1.53
10:40:01 AM   dev11-0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
10:40:01 AM    dev8-0      4.75    182.14    219.21     84.55      0.04      8.48      6.55      3.11
-d 表示的是每一個塊裝置(block device)。
[oracle@zeng ~]$ iostat -xd
Linux 2.6.32-71.el6.i686 (zeng)         03/16/2012      _i686_  (1 CPU)
Device:         rrqm/s   wrqm/s     r/s     w/s   rsec/s   wsec/s avgrq-sz avgqu-sz   await  svctm  %util
scd0              0.21     0.00    0.21    0.00     1.66     0.00     8.00     0.00    2.23   2.23   0.05
sda              18.43     0.53   12.94    2.18   761.75    21.56    51.80     0.20   13.03   5.53   8.36
-x 表示顯示擴充套件的統計資訊。
-d 表示顯示裝置的利用報表。
欄位解釋:
Device    表示裝置名或者分割槽名。
rrqm/s    每秒總計的等待佇列中寫裝置的請求數量。
wrqm/s    每秒總計的等待佇列中讀裝置的請求數量。
r/s       表示每秒的讀請求。
w/s       表示每秒的寫請求。
rsec/s    每秒讀扇區的數量。
wsec/s    每秒寫扇區的數量。
avgrq-sz  平均每次I/O請求的扇區數。
avgqu-sz  平均的I/O請求的佇列長度。
await     平均每次I/O請求的平響應時間(毫秒)。
svctm     平均每次I/O請求的服務時間(毫秒).
%util     I/O請求所佔用的CPU時間百分比。如果該值接近100%,意味著I/O裝置已經滿負荷工作。
如果發現每秒的讀寫數量很高,I/O請求時間佔用的CPU時間接近100%,說明出現了I/O瓶頸.
[oracle@zeng ~]$ iostat
Linux 2.6.32-71.el6.i686 (zeng)         03/16/2012      _i686_  (1 CPU)
avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.56    0.00    4.51    0.50    0.00   94.42
Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn
scd0              0.03         0.21         0.00        384          0
sda               2.11        99.81         3.73     179708       6722
iostat 不帶任何選項預設輸出的是系統自上次啟動以來的平均統計資訊。第一部分輸出的是CPU利用率情況。第二部分
輸出的是磁碟I/O利用率相關的情況。可以透過指定時間間隔實時的監控I/O的狀況,甚至監控次數來獲得更加精細的報表。
oracle@zeng ~]$ iostat -d 5
Linux 2.6.32-71.el6.i686 (zeng)         03/16/2012      _i686_  (1 CPU)
Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn
scd0              0.02         0.18         0.00        384          0
sda               1.82        85.40         3.32     179708       6986
欄位解釋:
tps         表示I/O裝置每秒的I/O傳送次數。傳送指的是一次I/O請求。多個邏輯上的I/O請求可以合併為一個I/O請求。
所有一次傳送對應的邏輯請求的數量是不確定的。
Blk_read/s  表示每秒從裝置上讀取的block數量。block的大小等於磁碟扇區的大小.kernel 2.4及其以後是512 bytes.
Blk_wrtn/s  表示每秒寫入裝置的block數量.
Blk_read    表示讀取的block的總量。
Blk_wrtn    表示寫入的block的總量。
[oracle@zeng ~]$ iostat 3 3 
Linux 2.6.32-71.el6.i686 (zeng)         03/16/2012      _i686_  (1 CPU)
avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.36    0.04    3.58    0.89    0.00   95.13
Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn
scd0              0.02         0.13         0.00        384          0
sda               4.03       109.23         7.45     318468      21730
每3秒報告一次I/O 狀態。次數是3次。可以把上面的資訊重定向輸出到檔案。
使用sar 進行實時,當前,歷史I/O監控。
檢視昨天的I/O 狀態。
[oracle@zeng ~]$ sar -d -f /var/log/sa/sa15
Linux 2.6.32-71.el6.i686 (zeng)         03/15/2012      _i686_  (1 CPU)
09:51:03 AM       LINUX RESTART
10:00:01 AM       DEV       tps  rd_sec/s  wr_sec/s  avgrq-sz  avgqu-sz     await     svctm     %util
10:10:01 AM   dev11-0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
10:10:01 AM    dev8-0      5.14    164.58     54.68     42.69      0.02      4.70      4.15      2.13
10:20:01 AM   dev11-0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
10:20:01 AM    dev8-0      4.06      2.96     50.26     13.11      0.03      6.45      6.24      2.53
10:30:01 AM   dev11-0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
10:30:01 AM    dev8-0      2.88      0.09     38.64     13.43      0.02      5.47      5.31      1.53
10:40:01 AM   dev11-0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
10:40:01 AM    dev8-0      4.75    182.14    219.21     84.55      0.04      8.48      6.55      3.11
-d 表示的是每一個塊裝置(block device)。
-f 指定讀取的歷史I/O 狀態統計檔案。
欄位解釋:
rd_sec/s  每秒從裝置中讀入的扇區數量。大小為512bytes.
wr_sec/s  每秒寫入裝置的扇區數量.大小為512bytes。
avgrq-sz  平均每次I/O請求的扇區數。
avgqu-sz  平均I/O請求的佇列長度。
輸出中的其他欄位同iostat。如果每秒從裝置中讀取、寫入的扇出數量很大。說明出現了I/O 瓶頸。確定了什麼時間
出現了I/O 瓶頸再透過其他工具.比如oracle AWR確定具體是什麼事件導致的I/O 瓶頸。
sar 用作實時I/O 狀態統計。
[oracle@zeng ~]$ sar -d 3 5
Linux 2.6.32-71.el6.i686 (zeng)         03/16/2012      _i686_  (1 CPU)
10:49:20 AM       DEV       tps  rd_sec/s  wr_sec/s  avgrq-sz  avgqu-sz     await     svctm     %util
10:49:23 AM   dev11-0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
10:49:23 AM    dev8-0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
sar 用作當天的I/O 狀態統計。
[oracle@zeng ~]$ sar -d 
Linux 2.6.32-71.el6.i686 (zeng)         03/16/2012      _i686_  (1 CPU)
08:57:26 AM       LINUX RESTART
09:00:02 AM       DEV       tps  rd_sec/s  wr_sec/s  avgrq-sz  avgqu-sz     await     svctm     %util
09:10:01 AM   dev11-0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
09:10:01 AM    dev8-0      0.36      6.18      1.67     21.68      0.00      7.89      6.35      0.23
09:20:02 AM   dev11-0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
記得要加-d 選項。表示報告塊裝置的活動資訊統計。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26110315/viewspace-718721/,如需轉載,請註明出處,否則將追究法律責任。

相關文章