#9019: add iotop utility -----------------------------------------------+--------------------------- Reporter: Prasad | Owner: nobody Type: enhancement | Status: new Priority: normal | Milestone: R1 Component: Applications/Command Line Tools | Version: Resolution: | R1/Development Blocked By: | Keywords: Has a Patch: 1 | Blocking: | Platform: All -----------------------------------------------+--------------------------- Comment (by anevilyak): Replying to [comment:5 Prasad]: > Accounting for IOs can be performed at various levels, for example: read, write system calls or, as you pointed out, when a an IO is submitted to the device. The syscalls can't really report accurate/meaningful stats though, as they're completely unaware of a) any ancillary operations that are an indirect result of their particular request, and b) how many operations a given request actually resulted in. To illustrate, consider the case of creating/deleting files. The syscall layer has absolutely no idea as to how much I/O such an operation actually results in since that completely depends on what housekeeping metadata operations the underlying filesystem had to do. Likewise, writing to a file might well result in the filesystem having to allocate more blocks for it, which also incurs extra operations outside of the requested write. Furthermore, if the I/O scheduler batches reads/writes into a single call, the syscall interface wouldn't know that either. It also wouldn't be aware if the underlying filesystem/device is in fact a RAID or other form of distributed storage that resulted in duplicate I/O operations being dispatched to multiple devices. Given all these caveats, accounting via the syscall interface presents at best an incomplete picture, and at worst an outright misleading one, which renders it pretty much useless unless your only goal is to print some numbers. -- Ticket URL: <http://dev.haiku-os.org/ticket/9019#comment:8> Haiku <http://dev.haiku-os.org> Haiku - the operating system.