現在的位置: 首頁 > 操作系統 > 正文

iostat的默認輸出是什么?iostat-d-k或iostat-c是什么

2020年05月25日 操作系統 ⁄ 共 2738字 ⁄ 字號 評論關閉

  iostat是Linux系統內置工具,用于查看機器的CPU時間片分配情況統計或硬盤IO統計。由于強大的top命令的存在(輸出更詳細的CPU/Memory統計數據),因此,在絕大多數場合下,iostat用來查看硬盤設備的IO狀態,在分析機器IO壓力或瓶頸時尤其有用。下面學步園小編來講解下iostat的默認輸出是什么?iostat-d-k或iostat-c是什么?

  iostat的默認輸出是什么

  在shell終端輸入iostat命令后,其默認輸出如下:

  [plain]

  Linux2.6.9xenu_7-0-0-0(demo-hostname)06/21/2013

  avg-cpu:%user%nice%sys%iowait%idle

  1.650.000.620.6097.12

  Device:tpsBlk_read/sBlk_wrtn/sBlk_readBlk_wrtn

  sda11.291.0912.3811546642130611280

  sda20.000.000.002960

  sda311.79142.71395.9515058797704178084600

  由man可知,若iostat在該機器上是首次執行,則輸出統計的采集時間范圍為機器啟動時刻到本次iostat命令執行時刻的時間段。否則,采集時間范圍為上次iostat執行時刻到本次執行時刻的時間段。

  從輸出內容可知,iostat先輸出的第1行為linuxkernelversion及hostname及命令運行時刻,后面幾行的內容則分為2部分:cpu統計;Device統計,下面分別說明。

  1)cpu統計輸出

  在kernel2.6.9的機器上,avg-cpu輸出內容由5個字段構成,其中%user/%nice/%sys/%idle比較容易理解,此處不再贅述。%iowait表示由于機器響應磁盤IO請求導致的CPU空閑時間,對于部署有IO密集型應用的機器,該字段的值通常比CPU密集型的機器對該字段的統計值要大。

  在kernel版本為2.6.32的機器中,可能還會有%steal字段,其含義為:

  ShowthepercentageoftimespentininvoluntarywaitbythevirtualCPUorCPUswhilethehypervisorwasservicinganothervirtualprocessor.

  2)Device統計輸出

  這里的Device通常就是harddisk,即硬盤。輸出包括6個字段,下面分別說明。

  Device:機器上的設備列表,通常是塊設備名(在linux中,與塊設備相對應的是字符設備,兩者的區別可以參考這里來了解)或分區名,如上面示例中的sda1/sda2/sda3;

  tps:每秒針對設備的傳輸次數(transfers),這里的"傳輸"是指I/O請求。需要注意的是,邏輯上的多次請求可能會被操作系統優化合并為一次I/O請求,linux系統對磁盤訪問的調度算法就采用了這個策略(若感興趣,可在這篇文章中搜索關鍵詞"merging"來了解linux的ioscheduler對requestsmerging的優化);

  Blk_read/s:每秒從設備讀取的數據大小,在這里,數據量以block為單位來描述。在kernel2.4及之后版本中,block即指扇區(sector),因此,1block=512bytes;在kernel2.4之前的版本中,block的大小不確定;

  Blk_wrtn/s:每秒向設備寫入的數據大小,數據大小同樣用block來描述;

  Blk_read:系統上電以來,從設備讀取的數據總數(單位:block);

  Blk_wrtn:系統上電以來,向設備寫入的數據總數(單位:block)。

  iostat-d-k或iostat-c是什么

  iostat不加任何參數時,默認輸出avg-cpu及device兩種統計數據。若我們只關心device的統計數據,可以用-d來顯式指明只輸出device相關的統計。另外,device的統計數據默認單位是block(=512Kbytes),我們可以用-k來指定輸出的統計數據值以kilobytes為單位。

  例如,在shell終端輸入iostat-d-k后,輸出格式如下所示:

  [plain]

  Linux2.6.9xenu_7-0-0-0(demo-hostname)06/29/2013

  Device:tpskB_read/skB_wrtn/skB_readkB_wrtn

  sda11.290.516.16578957769260268

  sda20.000.000.001480

  sda311.2367.20187.497554944612107939224

  可以看到,與默認輸出格式相比,此次輸出內容有4個字段名及數值均有所變化:字段名從Blk_xxx變為kB_xxx(表明這些字段的單位從block變為kB),數值也大概變為原來的512倍。

  若我們只關心avg-cpu的統計數據,則可以通過iostat-c來顯式指定。

  3.iostat其它用法

  1)iostatintervalcount

  iostat默認是調用一次才輸出一次統計結果,在實際使用中,通常會有只調一次,然后自動按某固定時間間隔連續輸出n次的需求。此時可借助可選的interval和count參數來達到這個目的(關于這兩個參數,可man查看)。例如iostat1100表示每隔1s輸出一次,共輸出100次

  2)iostat-pdevice|ALL

  當linux主機由多塊磁盤,而我們只關心某個或某幾個設備的統計數據時,可以通過iostat-psda1[sda2][sdan]來顯式指明僅輸出指定設備的統計數據。

  iostat-pALL則表明需要輸出系統中定義的所有塊設備或分區的統計數據,包括從未被用到的那些設備。此時,輸出內容可能會出現ram0之類的設備名,它表示ramdisk,想了解的同學可以查看這里https://wiki.archlinux.org/index.php/Ramdisk。

  注:ALL參數只在kernel2.5及以后的版本中有效。

  除上面列出的幾種用法外,各種參數還可組合使用,限于篇幅,這里不再展開。想了解的話,在自己機器上試驗一下,學習效果會更好。

  以上就是關于“iostat的默認輸出是什么?iostat-d-k或iostat-c是什么”的內容,希望對大家有用。更多資訊請關注學步園。學步園,您學習IT技術的優質平臺!

抱歉!評論已關閉.

奔驰宝马破解版下载 广东十一选五任一诀窍 厦门股票配资 丁紫 内蒙十一选五任五遗漏 吉林快三和值中奖金额 炒股的人很坏吗 欢乐彩app软件 北京快乐8怎么提现不了 德国赛车大小走势 2018票据理财平台排名 广东26选5开奖结果查 苹果股票行情实时查询 辽宁11选五开奖结果一定牛 辽宁十一选五开奖结果及走势图 11选五5开奖河北一定牛 体彩河北省十一选五走势图 彩票一分钟一期的软件