linux – 在ubuntu中输出/ proc / diskstats

前端之家收集整理的这篇文章主要介绍了linux – 在ubuntu中输出/ proc / diskstats前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
谁能告诉我关于/ proc / diskstats中的第11个字段?
文档说它是加权执行I / O所花费的毫秒数.它是否像在一秒钟内为DiskIO花费的毫秒数?

我从减去前一个值后每200ms记录一次该值,并观察到该值高达7000.我需要绘制一个显示磁盘IO速率的图表.这是脚本:

#!/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

任何人都可以解释这个领域吗?

解决方法

documentation
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.

该字段的增量除了执行IO所花费的时间乘以正在进行的IO请求的数量,因此它的时间由活动请求的数量加权.它考虑了IO队列的大小.

例如,一台机器在最后一秒内不断地执行IO,但是队列永远不会超过1个请求的值为1000.一台机器也会在最后一秒内不断地执行IO,但平均队列长度为10个请求会有价值10 000.

猜你在找的Linux相关文章