/proc/pid/io - I/O statistics
- /proc/pid/io (since Linux 2.6.20)
- This file contains I/O statistics for the process and its waited-for
children, for example:
-
# cat /proc/3828/io
rchar: 323934931
wchar: 323929600
syscr: 632687
syscw: 632675
read_bytes: 0
write_bytes: 323932160
cancelled_write_bytes: 0
- The fields are as follows:
- rchar: characters
read
- The number of bytes returned by successful read(2) and similar
system calls.
- wchar: characters
written
- The number of bytes returned by successful write(2) and similar
system calls.
- syscr: read
syscalls
- The number of "file read" system calls—those from the
read(2) family, sendfile(2), copy_file_range(2), and
ioctl(2) BTRFS_IOC_ENCODED_READ[_32] (including when
invoked by the kernel as part of other syscalls).
- syscw: write
syscalls
- The number of "file write" system calls—those from the
write(2) family, sendfile(2), copy_file_range(2), and
ioctl(2) BTRFS_IOC_ENCODED_WRITE[_32] (including when
invoked by the kernel as part of other syscalls).
- read_bytes:
bytes read
- The number of bytes really fetched from the storage layer. This is
accurate for block-backed filesystems.
- write_bytes:
bytes written
- The number of bytes really sent to the storage layer.
- cancelled_write_bytes:
- The above statistics fail to account for truncation: if a process writes 1
MB to a regular file and then removes it, said 1 MB will not be written,
but will have nevertheless been accounted as a 1 MB write. This
field represents the number of bytes "saved" from I/O writeback.
This can yield to having done negative I/O if caches dirtied by another
process are truncated. cancelled_write_bytes applies to I/O already
accounted-for in write_bytes.
- Permission to access this file is governed by ptrace(2) access mode
PTRACE_MODE_READ_FSCREDS.
These counters are not atomic: on systems where 64-bit integer
operations may tear, a counter could be updated simultaneously with a read,
yielding an incorrect intermediate value.