linux I/O 瓶頸監控
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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Linux命令----分析系統I/O的瓶頸Linux
- I/O已經不再是效能瓶頸
- [衝破核心瓶頸,讓I/O效能飆升]DPDK工程師手冊工程師
- 在 Linux 中如何使用 iotop 和 iostat 監控磁碟 I/O 活動?LinuxiOS
- 監控報I/O問題,怎麼辦?
- 如何監測 Linux 的磁碟 I/O 效能Linux
- 實時監控網路流量,精準辨別網路效能瓶頸
- 使用 iotop 監控哪些程式在進行I/O操作
- 如何監控 Log4j2 非同步日誌遇到寫入瓶頸非同步
- 如何進行I/O評估、監控、定位和最佳化?
- Linux I/O排程器Linux
- 使用 sar 和 kSar 來發現 Linux 效能瓶頸Linux
- 前端瓶頸如何打破???前端
- 如何突破前端瓶頸???前端
- Linux下的5種I/O模型與3組I/O複用Linux模型
- Linux裡五種I/O模型Linux模型
- Linux下磁碟I/O測試Linux
- 在Linux中,如何進行系統效能瓶頸分析?Linux
- 人到中年了的瓶頸
- Linux 監控Linux
- printStackTrace()造成的併發瓶頸
- 效能測試瓶頸調優
- 打破Kafka帶來的瓶頸?Kafka
- 計算機I/O與I/O模型計算機模型
- 如何更改Linux的I/O排程器Linux
- oracle快速定位資料庫瓶頸Oracle資料庫
- 如何正確定義效能瓶頸
- 軟體測試:瓶頸分析方法
- 用 pprof 找出程式碼效能瓶頸
- 利用PerfDog分析遊戲效能瓶頸遊戲
- Chrome執行時效能瓶頸分析Chrome
- 如何使用 Wireshark 分析 TCP 吞吐瓶頸TCP
- Android高階開發突破瓶頸Android
- Linux 效能監控工具Linux
- linux監控工具auditLinux
- I/O流
- Java I/OJava
- Linux之《荒島餘生》(四)I/O篇Linux
- 開發技術瓶頸期,如何突破