mirror of https://github.com/mkerrisk/man-pages
proc.5: Small fixes to Peter Schiffer's /proc/PID/io patch
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
This commit is contained in:
parent
0ca2fc4d95
commit
68f1106697
74
man5/proc.5
74
man5/proc.5
|
@ -59,7 +59,7 @@
|
||||||
.\" to see what information could be imported from that file
|
.\" to see what information could be imported from that file
|
||||||
.\" into this file.
|
.\" into this file.
|
||||||
.\"
|
.\"
|
||||||
.TH PROC 5 2013-06-27 "Linux" "Linux Programmer's Manual"
|
.TH PROC 5 2013-08-01 "Linux" "Linux Programmer's Manual"
|
||||||
.SH NAME
|
.SH NAME
|
||||||
proc \- process information pseudo-file system
|
proc \- process information pseudo-file system
|
||||||
.SH DESCRIPTION
|
.SH DESCRIPTION
|
||||||
|
@ -352,7 +352,8 @@ file access mode and file status flags (see
|
||||||
The files in this directory are readable only by the owner of the process.
|
The files in this directory are readable only by the owner of the process.
|
||||||
.TP
|
.TP
|
||||||
.IR /proc/[pid]/io " (since kernel 2.6.20)"
|
.IR /proc/[pid]/io " (since kernel 2.6.20)"
|
||||||
This file contains IO statistics for each running process, for example:
|
.\" commit 7c3ab7381e79dfc7db14a67c6f4f3285664e1ec2
|
||||||
|
This file contains I/O statistics for the process, for example:
|
||||||
.in +4n
|
.in +4n
|
||||||
.nf
|
.nf
|
||||||
|
|
||||||
|
@ -369,75 +370,66 @@ cancelled_write_bytes: 0
|
||||||
|
|
||||||
The fields are as follows:
|
The fields are as follows:
|
||||||
.RS
|
.RS
|
||||||
.IP * 2
|
.TP
|
||||||
.IR rchar :
|
.IR rchar ": characters read"
|
||||||
chars read
|
|
||||||
|
|
||||||
The number of bytes which this task has caused to be read from storage.
|
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
|
This is simply the sum of bytes which this process passed to
|
||||||
.BR read (2)
|
.BR read (2)
|
||||||
and
|
and similar system calls.
|
||||||
.BR pread (2).
|
It includes things such as terminal I/O and
|
||||||
It includes things like tty IO and it is unaffected by whether or not actual
|
is unaffected by whether or not actual
|
||||||
physical disk IO was required (the read might have been satisfied from
|
physical disk I/O was required (the read might have been satisfied from
|
||||||
pagecache).
|
pagecache).
|
||||||
.IP *
|
.TP
|
||||||
.IR wchar :
|
.IR wchar ": characters written"
|
||||||
chars written
|
|
||||||
|
|
||||||
The number of bytes which this task has caused, or shall cause to be written
|
The number of bytes which this task has caused, or shall cause to be written
|
||||||
to disk.
|
to disk.
|
||||||
Similar caveats apply here as with
|
Similar caveats apply here as with
|
||||||
.IR rchar .
|
.IR rchar .
|
||||||
.IP *
|
.TP
|
||||||
.IR syscr :
|
.IR syscr ": read syscalls"
|
||||||
read syscalls
|
Attempt to count the number of read I/O operations\(emthat is,
|
||||||
|
system calls such as
|
||||||
Attempt to count the number of read I/O operations, i.e. syscalls like
|
|
||||||
.BR read (2)
|
.BR read (2)
|
||||||
and
|
and
|
||||||
.BR pread (2).
|
.BR pread (2).
|
||||||
.IP *
|
.TP
|
||||||
.IR syscw :
|
.IR syscw ": write syscalls"
|
||||||
write syscalls
|
Attempt to count the number of write I/O operations\(emthat is,
|
||||||
|
system calls such as
|
||||||
Attempt to count the number of write I/O operations, i.e. syscalls like
|
|
||||||
.BR write (2)
|
.BR write (2)
|
||||||
and
|
and
|
||||||
.BR pwrite (2).
|
.BR pwrite (2).
|
||||||
.IP *
|
.TP
|
||||||
.IR read_bytes :
|
.IR read_bytes ": bytes read"
|
||||||
bytes read
|
|
||||||
|
|
||||||
Attempt to count the number of bytes which this process really did cause to
|
Attempt to count the number of bytes which this process really did cause to
|
||||||
be fetched from the storage layer.
|
be fetched from the storage layer.
|
||||||
This is accurate for block-backed filesystems.
|
This is accurate for block-backed filesystems.
|
||||||
.IP *
|
.TP
|
||||||
.IR write_bytes :
|
.IR write_bytes ": bytes written"
|
||||||
bytes written
|
|
||||||
|
|
||||||
Attempt to count the number of bytes which this process caused to be sent to
|
Attempt to count the number of bytes which this process caused to be sent to
|
||||||
the storage layer.
|
the storage layer.
|
||||||
.IP *
|
.TP
|
||||||
.IR cancelled_write_bytes :
|
.IR cancelled_write_bytes :
|
||||||
|
|
||||||
The big inaccuracy here is truncate.
|
The big inaccuracy here is truncate.
|
||||||
If a process writes 1MB to a file and then deletes the file,
|
If a process writes 1MB to a file and then deletes the file,
|
||||||
it will in fact perform no writeout.
|
it will in fact perform no writeout.
|
||||||
But it will have been accounted as having caused 1MB of write.
|
But it will have been accounted as having caused 1MB of write.
|
||||||
In other words: this field represents number of bytes which this process
|
In other words: this field represents the number of bytes which this process
|
||||||
caused to not happen, by truncating pagecache.
|
caused to not happen, by truncating pagecache.
|
||||||
A task can cause "negative" IO too.
|
A task can cause "negative" I/O too.
|
||||||
If this task truncates some dirty pagecache,
|
If this task truncates some dirty pagecache,
|
||||||
some IO which another task has been accounted for
|
some I/O which another task has been accounted for
|
||||||
(in its write_bytes) will not be happening.
|
(in its
|
||||||
|
.IR write_bytes )
|
||||||
|
will not be happening.
|
||||||
|
.RE
|
||||||
.IP
|
.IP
|
||||||
.IR Note :
|
.IR Note :
|
||||||
|
In the current implementation, things are a bit racy on 32-bit systems:
|
||||||
At its current implementation state, this is a bit racy on 32-bit systems:
|
|
||||||
if process A reads process B's
|
if process A reads process B's
|
||||||
.I /proc/[pid]/io
|
.I /proc/[pid]/io
|
||||||
while process B is updating one of those 64-bit counters,
|
while process B is updating one of these 64-bit counters,
|
||||||
process A could see an intermediate result.
|
process A could see an intermediate result.
|
||||||
.RE
|
.RE
|
||||||
.TP
|
.TP
|
||||||
|
|
Loading…
Reference in New Issue