国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Linux > 正文

Linux 使用iostat分析IO性能

2024-06-28 13:24:22
字體:
來源:轉載
供稿:網友
linux 使用iostat分析IO性能

原文:http://www.CUOXin.com/bangerlee/articles/2547161.html

對于I/O-bond類型的進程,我們經常用iostat工具查看進程IO請求下發的數量、系統處理IO請求的耗時,進而分析進程與操作系統的交互過程中IO方面是否存在瓶頸。

下面通過iostat命令使用實例,說明使用iostat查看IO請求下發情況、系統IO處理能力的方法,以及命令執行結果中各字段的含義。

1.不加選項執行iostat

我們先來看直接執行iostat的輸出結果:

復制代碼
linux # iostatLinux 2.6.16.60-0.21-smp (linux)     06/12/12avg-cpu:  %user   %nice %system %iowait  %steal   %idle           0.07    0.00    0.05    0.06    0.00   99.81Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtnsda               0.58         9.95        37.47    6737006   25377400sdb               0.00         0.00         0.00        824          0
復制代碼

單獨執行iostat,顯示的結果為從系統開機到當前執行時刻的統計信息。以上輸出中,除最上面指示系統版本、主機名和日期的一行外,另有兩部分:

avg-cpu:總體cpu使用情況統計信息,對于多核cpu,這里為所有cpu的平均值

Device:各磁盤設備的IO統計信息

對于cpu統計信息一行,我們主要看iowait的值,它指示cpu用于等待io請求完成的時間。Device中各列含義如下:

  • Device:以sdX形式顯示的設備名稱
  • tps:每秒進程下發的IO讀、寫請求數量
  • Blk_read/s:每秒讀扇區數量(一扇區為512bytes)
  • Blk_wrtn/s:每秒寫扇區數量
  • Blk_read:取樣時間間隔內讀扇區總數量
  • Blk_wrtn:取樣時間間隔內寫扇區總數量

我們可以使用-c選項單獨顯示avg-cpu部分的結果,使用-d選項單獨顯示Device部分的信息。

2.指定采樣時間間隔與采樣次數

與sar命令一樣,我們可以以"iostat interval [count]”形式指定iostat命令的采樣間隔和采樣次數:

復制代碼
linux # iostat -d 1 2Linux 2.6.16.60-0.21-smp (linux)     06/13/12Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtnsda               0.55         8.93        36.27    6737086   27367728sdb               0.00         0.00         0.00        928          0Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtnsda               2.00         0.00        72.00          0         72sdb               0.00         0.00         0.00          0          0
復制代碼

以上命令輸出Device的信息,采樣時間為1秒,采樣2次,若不指定采樣次數,則iostat會一直輸出采樣信息,直到按”ctrl+c”退出命令。注意,第1次采樣信息與單獨執行iostat的效果一樣,為從系統開機到當前執行時刻的統計信息。

3.kB為單位顯示讀寫信息(-k選項)

我們可以使用-k選項,指定iostat的部分輸出結果以kB為單位,而不是以扇區數為單位:

復制代碼
linux # iostat -d -kLinux 2.6.16.60-0.21-smp (linux)     06/13/12Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtnsda               0.55         4.46        18.12    3368543   13686096sdb               0.00         0.00         0.00        464          0
復制代碼

以上輸出中,kB_read/s、kB_wrtn/s、kB_read和kB_wrtn的值均以kB為單位,相比以扇區數為單位,這里的值為原值的一半(1kB=512bytes*2)

4.更詳細的io統計信息(-x選項)

為顯示更詳細的io設備統計信息,我們可以使用-x選項,在分析io瓶頸時,一般都會開啟-x選項:

linux # iostat -x -k -d 1Linux 2.6.16.60-0.21-smp (linux)     06/13/12……Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await  svctm  %utilsda               0.00  9915.00    1.00   90.00     4.00 34360.00   755.25    11.79  120.57   6.33  57.60

以上各列的含義如下:

  • rrqm/s:每秒對該設備的讀請求被合并次數,文件系統會對讀取同塊(block)的請求進行合并
  • wrqm/s:每秒對該設備的寫請求被合并次數
  • r/s:每秒完成的讀次數
  • w/s:每秒完成的寫次數
  • rkB/s:每秒讀數據量(kB為單位)
  • wkB/s:每秒寫數據量(kB為單位)
  • avgrq-sz:平均每次IO操作的數據量(扇區數為單位)
  • avgqu-sz:平均等待處理的IO請求隊列長度
  • await:平均每次IO請求等待時間(包括等待時間和處理時間,毫秒為單位)
  • svctm:平均每次IO請求的處理時間(毫秒為單位)
  • %util:采用周期內用于IO操作的時間比率,即IO隊列非空的時間比率

對于以上示例輸出,我們可以獲取到以下信息:

  1. 每秒向磁盤上寫30M左右數據(wkB/s值)
  2. 每秒有91次IO操作(r/s+w/s),其中以寫操作為主體
  3. 平均每次IO請求等待處理的時間為120.57毫秒,處理耗時為6.33毫秒
  4. 等待處理的IO請求隊列中,平均有11.79個請求駐留

以上各值之間也存在聯系,我們可以由一些值計算出其他數值,例如:

util = (r/s+w/s) * (svctm/1000)

對于上面的例子有:util = (1+90)*(6.33/1000) = 0.57603


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 延川县| 富川| 江阴市| 鄯善县| 剑河县| 合肥市| 芮城县| 布尔津县| 师宗县| 唐海县| 密山市| 茂名市| 福海县| 临沭县| 子洲县| 东港市| 商河县| 宁乡县| 名山县| 天镇县| 马边| 罗江县| 广丰县| 株洲市| 新巴尔虎右旗| 子长县| 邻水| 扶余县| 邻水| 梨树县| 泗洪县| 北辰区| 金门县| 兴宁市| 澜沧| 北票市| 滦南县| 拉孜县| 郸城县| 通渭县| 盐边县|