Назад | Перейти на главную страницу

Вывод / proc / diskstats в ubuntu

кто-нибудь может сказать мне про 11-е поле в / proc / diskstats? В документации указано, что это взвешенное количество миллисекунд, затраченных на выполнение операций ввода-вывода. Это похоже на количество миллисекунд, потраченных на DiskIO за секунду?

Я регистрировал это значение каждые 200 мс после вычитания из него предыдущего и наблюдал значение до 7000. Мне нужно построить график, показывающий скорость ввода-вывода диска. Вот сценарий:

#!/bin/bash

PREV_TOTAL=0

echo "" >> $1
while true; do

  numbers=( $(tail -3 < /proc/diskstats | head -2 | awk '{print $14}' ) )  ; 
  let "TOTAL=$((${numbers[0]} + ${numbers[1]}))"
  let "DIFF_TOTAL=$TOTAL-$PREV_TOTAL"
  time=`date +%s%N`
  echo "$time $DIFF_TOTAL" >> $1
  PREV_TOTAL="$TOTAL"
# Wait before checking again.
  sleep 0.2
done

Кто-нибудь может объяснить это поле?

Из документация:

Field 11 -- weighted # of milliseconds spent doing I/Os
    This field is incremented at each I/O start, I/O completion, I/O
    merge, or read of these stats by the number of I/Os in progress
    (field 9) times the number of milliseconds spent doing I/O since the
    last update of this field.  This can provide an easy measure of both
    I/O completion time and the backlog that may be accumulating.

Поле увеличивается на время, затраченное на выполнение операций ввода-вывода, умноженное на количество выполняемых запросов ввода-вывода, поэтому время взвешивается по количеству активных запросов. Учитывается размер очереди ввода-вывода.

Например, машина, постоянно выполняющая ввод-вывод в течение последней секунды, но очередь, никогда не превышающая 1 запроса, будет иметь значение 1000. Машина также постоянно выполняет ввод-вывод в течение последней секунды, но со средней длиной очереди 10 запросов будет иметь стоимость 10 000.

из: http://www.mjmwired.net/kernel/Documentation/iostats.txt

Поле 11 - взвешенное количество миллисекунд, потраченных на выполнение операций ввода-вывода:

    This field is incremented at each I/O start, I/O completion, I/O
    merge, or read of these stats by the number of I/Os in progress
    (field 9) times the number of milliseconds spent doing I/O since the
    last update of this field.  This can provide an easy measure of both
    I/O completion time and the backlog that may be accumulating.