在/proc/[pid]/io文件中,计数器是什么意思?

40

我正在为Munin创建一个插件,用于监控指定进程的统计信息。其中一个信息来源是/proc/[pid]/io。但我很难弄清rchar/wcharread_bytes/written_bytes之间的区别。

它们并不相同,因为它们提供不同的值。那它们代表什么呢?


希望你不介意这些更改,有些人(尤其是我)对少数项目并不熟悉,更不用说古老的语言了 ;) - Matt Joiner
1
我可以接受这个,但它并不是那么小。我认为它部署得很好。 - Kvisle
1个回答

72

虽然proc手册页相对落后(大多数与cookie-cutter user-space开发无关的手册页/文档也是如此),但幸运的是这些内容在Linux内核源代码中得到了完全的记录,位于Documentation/filesystems/proc.rst。以下是相关部分:

rchar
-----

I/O counter: chars read
The number of bytes which this task has caused to be read from storage. This
is simply the sum of bytes which this process passed to read() and pread().
It includes things like tty IO and it is unaffected by whether or not actual
physical disk IO was required (the read might have been satisfied from
pagecache)


wchar
-----

I/O counter: chars written
The number of bytes which this task has caused, or shall cause to be written
to disk. Similar caveats apply here as with rchar.


read_bytes
----------

I/O counter: bytes read
Attempt to count the number of bytes which this process really did cause to
be fetched from the storage layer. Done at the submit_bio() level, so it is
accurate for block-backed filesystems. <please add status regarding NFS and
CIFS at a later time>


write_bytes
-----------

I/O counter: bytes written
Attempt to count the number of bytes which this process caused to be sent to
the storage layer. This is done at page-dirtying time.

取消写入字节 - Massimo
1
重要的是要知道,通过使用memmap进行的IO不会在那些计数器中显示,并且目前没有简便的方法来衡量此类访问。 - Kiwy

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接