# proc_pid_io

## NAME



           /proc/pid/io - I/O statistics
    


## DESCRIPTION



           _/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**.
    


## CAVEATS



           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.
    


* * *