我正在为Munin创建一个插件,用于监控指定进程的统计信息。其中一个信息来源是/proc/[pid]/io
。但我很难弄清rchar
/wchar
和read_bytes
/written_bytes
之间的区别。
它们并不相同,因为它们提供不同的值。那它们代表什么呢?
我正在为Munin创建一个插件,用于监控指定进程的统计信息。其中一个信息来源是/proc/[pid]/io
。但我很难弄清rchar
/wchar
和read_bytes
/written_bytes
之间的区别。
它们并不相同,因为它们提供不同的值。那它们代表什么呢?
虽然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.