IO accounting

read bytes is the number of bytes read by tasks. Reads are always synchronous in the kernel so this type of resource is the easiest one.

dirty bytes is the number of bytes that were dirty since VE start, i. e. data that isn't yet flushed to disk. This type of resource is accumulated using page beancounters and the context the page was dirtied by is determined like this:

if a page is mapped it's „mapper” is used as this may happen in any context (unmapping of a page under memory pressure), if a page is not mapped — current BC is used as this can happen during usual write (writev) only.

written bytes is the number of bytes flushed to disk. The beancounter charged with this is the one by which the page was dirtied.

canceled bytes is the number of bytes that were dirty but weren't flushed to disk.

missed bytes is the number of bytes that were dirtied but the context (beancounter) wasn't saved due to lack of memory.

# cat /proc/bc/101/ioacct 
        read                              24330240
        write                               598016
        dirty                               622592
        cancel                               24576
        missed                                   0

https://openvz.org/IO_accounting