Percona-Toolkit系列(6) --- pt-diskstats

pt-diskstats

pt-diskstats:官方地址

說明

用途:用於監控GNU/Linux的I/O交互式工具。

語法:

pt-diskstats [OPTIONS] [FILES]

pt-diskstats打印GNU/Linux的磁盤I/O統計數據。它有點類似於iostat,但它是交互式的,而且更加詳細。它可以分析從另一臺機器上收集的數據。

默認情況下,通過讀取/proc/diskstats文件中數據,然後通過分析展示。還有一種方式就是,通過分析/proc/diskstats文件的備份樣本,可通過shell腳本來定時備份/proc/diskstats文件。

備份/proc/diskstats文件的腳本

INTERVAL=1
while true; do
   sleep=$(date +%s.%N | awk "{print $INTERVAL - (\$1 % $INTERVAL)}")
   sleep $sleep
   date +"TS %s.%N %F %T" >> diskstats-samples.txt
   cat /proc/diskstats >> diskstats-samples.txt
done

在工具運行期間,可通過輸入q推出命令,也可以輸入?來交互式指定其他參數.

具體例子

默認情況下,直接輸入pt-diskstats即可。

[root@BigData ~]# pt-diskstats

  #ts device    rd_s rd_avkb rd_mb_s rd_mrg rd_cnc   rd_rt    wr_s wr_avkb wr_mb_s wr_mrg wr_cnc   wr_rt busy in_prg    io_s  qtime stime
  0.2 sda        0.0     0.0     0.0     0%    0.0     0.0   122.5    18.9     2.3     0%    1.1     9.1  32%      6   122.5    8.4   2.6
  0.2 sda2       0.0     0.0     0.0     0%    0.0     0.0   122.5    18.9     2.3     0%    1.1     9.1  32%      6   122.5    8.4   2.6
  0.2 dm-0       0.0     0.0     0.0     0%    0.0     0.0   147.0    21.1     3.0     0%    1.1     7.6  32%      6   147.0    7.2   2.2

  1.0 sda        0.0     0.0     0.0     0%    0.0     0.0   188.0    26.9     4.9    17%    6.1    26.7  87%      3   188.0   25.5   3.8
  1.0 sda2       0.0     0.0     0.0     0%    0.0     0.0   188.0    26.9     4.9    17%    6.1    26.7  87%      3   188.0   25.5   3.8
  1.0 dm-0       0.0     0.0     0.0     0%    0.0     0.0   224.0    21.9     4.8     0%    7.7    34.3  87%      3   224.0   33.2   3.9
   You can control this program by key presses:
   ------------------- Key ------------------- ---- Current Setting ----
   A, D, S) Set the group-by mode              A
   c) Enter a Perl regex to match column names .
   /) Enter a Perl regex to match disk names   (none)
   z) Set the sample size in seconds           1
   i) Hide inactive disks                      yes
   p) Pause the program
   q) Quit the program
   space) Print headers
   ------------------- Press any key to continue -----------------------

時間模式:

[root@BigData ~]# pt-diskstats  --show-timestamps

     #ts device    rd_s rd_avkb rd_mb_s rd_mrg rd_cnc   rd_rt    wr_s wr_avkb wr_mb_s wr_mrg wr_cnc   wr_rt busy in_prg    io_s  qtime stime
14:00:25 sda        0.0     0.0     0.0     0%    0.0     0.0    36.9     7.8     0.3     0%    0.1     2.2   8%      0    36.9    0.2   2.0
14:00:25 sda2       0.0     0.0     0.0     0%    0.0     0.0    36.9     7.8     0.3     0%    0.1     2.2   8%      0    36.9    0.2   2.0
14:00:25 dm-0       0.0     0.0     0.0     0%    0.0     0.0    36.9     7.8     0.3     0%    0.1     2.2   8%      0    36.9    0.2   2.0

列名解釋:

  • #ts:此列的內容因工具的聚合模式而異。默認模式是,當每行包含關於單個磁盤的信息,但可能是在該磁盤的多個樣本之間進行聚合時,這一列以{花括號}的形式顯示包含在輸出行中的樣本數量。在顯示的示例中,每一行輸出彙總/proc/diskstats.的{1}樣本。而在時間模式下,則顯示的當前時間。
  • device:設備名稱。
  • rd_s:每秒讀取次數。計算公式:delta[field1] / delta[time]
  • rd_avkb:平均讀取數據量大小,單位:kb。計算公式:2 * delta[field3] / delta[field1]
  • rd_mb_s:每秒讀取的平均兆字節數。計算公式:2 * delta[field3] / delta[time]
  • rd_mrg:在發送到物理設備之前,在隊列調度程序中合併在一起的讀請求的百分比。計算公式:100 * delta[field2] / (delta[field2] + delta[field1])
  • rd_cnc:根據Little’s Law計算的讀操作的平均併發性。這是塊設備上的端到端併發性,而不是底層磁盤上的併發性。它包括在隊列中花費的時間。計算公式:delta[field4] / delta[time] / 1000 / devices-in-group
  • rd_rt:讀取操作的平均響應時間(以毫秒爲單位)。這是端到端響應時間,包括在隊列中花費的時間。發出I/O請求的應用程序看到的是響應時間,而不是塊設備底層物理磁盤的響應時間。計算公式:delta[field4] / (delta[field1] + delta[field2])
  • wr_s, wr_avkb, wr_mb_s, wr_mrg, wr_cnc, wr_rt:對應於讀操作相關指標,請自行查看。
  • busy:該設備至少有一個請求正在進行的掛鐘時間的百分比;這就是iostat所稱的%util,實際上它是利用率,這取決於您如何定義利用率,但在通常的說法中,這有時是含糊不清的。也可以稱爲停留時間;至少一個請求駐留在系統中的時間。計算公式:100 * delta[field10] / (1000 * delta[time])
  • in_prg:正在進行的請求數量。與讀寫組合不同,讀寫組合是由可靠的數字生成的平均值,這個數字是一個瞬時樣本,您可以看到它可能代表一個請求高峯,而不是真正的長期平均值。如果這個數字很大,本質上意味着設備負載很重。計算公式:field9
  • ios_s:物理設備的平均吞吐量,以每秒I/O操作(IOPS)表示。本列顯示底層設備正在處理的IOPS總數。它是rd_s和wr_s的和。
  • qtime:平均排隊時間;也就是說,一個請求在發送到物理設備之前在設備調度程序隊列中花費的時間。這是讀寫的平均值。計算公式:delta[field11] / (delta[field1, 2, 5, 6] + delta[field9]) - delta[field10] / delta[field1, 2, 5, 6]
  • stime:平均使用時間;也就是說,物理設備在請求在隊列中完成等待後處理請求所花費的時間。這是讀寫的平均值。由排隊理論利用公式U = SX計算得到S。計算公式:delta[field10] / (delta[field1, 2, 5, 6])
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章