Linux   发布时间:2022-04-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了linux – 以编程方式测量磁盘IO大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

我想以编程方式测量给定时间跨度内与磁盘io相关的一些数字.这意味着我不想生成像iostat这样的进程来获取我的数字,而是希望从proc等读取内容. 我需要知道: >写入磁盘的块数 >从磁盘读取的块数 >从磁盘读取但在磁盘高速缓存中找到的块数 >要写入磁盘但尚未写入的块数,以了解我可能期望的IO数量. 如果我只通过磁盘或分区获取此信息……这甚至更好,因为我不需要知道我从proc读取了多少信息. 如果
我想以编程方式测量给定时间跨度内与磁盘io相关的一些数字.这意味着我不想生成像iostat这样的进程来获取我的数字,而是希望从proc等读取内容.

我需要知道:

>写入磁盘的块数
>从磁盘读取的块数
>从磁盘读取但在磁盘高速缓存中找到的块数
>要写入磁盘但尚未写入的块数,以了解我可能期望的IO数量.

如果我只通过磁盘或分区获取此信息……这甚至更好,因为我不需要知道我从proc读取了多少信息.

如果我还知道这个过程等待IO完成的时间……甚至更好.

这可能是通过一些IO调用,还是通过读取和解析/ proc文件

解决方法@H_675_31@
iostat从/ proc / diskstats读取 – 我无法告诉你哪个列对应于什么.这需要一些调查.
此外,如果您想获得有关特定进程的更多信息,/ proc / [processID]包含有关该进程的信息,例如io和mem

文件中的一行如下所示:

8    0 sda 1576985 366566 29817737 8671588 4847477 21489330 210704848 14116392 0 14120880 22772188

/usr/src/linux-*/Documentation/iostats.txt开始:

Field  1 -- # of reads completed
    This is the @R_89_10586@l number of reads completed successfully.
Field  2 -- # of reads merged,field 6 -- # of writes merged
    Reads and writes which are adjacent to each other may be merged for
    efficiency.  Thus two 4K reads may become one 8K read before it is
    ultimately handed to the disk,and so it will be counted (and queued)
    as only one I/O.  This field lets you kNow how often this was done.
Field  3 -- # of sectors read
    This is the @R_89_10586@l number of sectors read successfully.
Field  4 -- # of milliseconds spent reading
    This is the @R_89_10586@l number of milliseconds spent by all reads (as
    measured from __make_request() to end_that_request_last()).
Field  5 -- # of writes completed
    This is the @R_89_10586@l number of writes completed successfully.
Field  6 -- # of writes merged
    See the description of field 2.
Field  7 -- # of sectors written
    This is the @R_89_10586@l number of sectors written successfully.
Field  8 -- # of milliseconds spent wriTing
    This is the @R_89_10586@l number of milliseconds spent by all writes (as
    measured from __make_request() to end_that_request_last()).
Field  9 -- # of I/Os currently in progress
    The only field that should go to zero. Incremented as requests are
    given to appropriate struct request_queue and decremented as they finish.
Field 10 -- # of milliseconds spent doing I/Os
    This field increases so long as field 9 is nonzero.
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.

大佬总结

以上是大佬教程为你收集整理的linux – 以编程方式测量磁盘IO全部内容,希望文章能够帮你解决linux – 以编程方式测量磁盘IO所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。