htop icon indicating copy to clipboard operation
htop copied to clipboard

IOPS_READ_RATE / IOPS_WRITE_RATE / IOPS_RATE column ?

Open devZer0 opened this issue 2 years ago • 3 comments

i don't know of any tool which can show an IOPS/s rate on a per-process basis.

as IOPS is an extremely important unit in storage administrators daily job and since htop can show SYSCR and SYSCW column (but only in absolute values), i wonder if it wouldn't be valuable and easy, to show a rate per second instead of an absolute value.

that would give an estimate of process IOPS besides IO_READ_RATE and IO_WRITE_RATE

so what about adding

IOPS_READ_RATE - The number of read(2) syscalls per second per process IOPS_WRITE_RATE - The number of write(s) syscalls per second per process IOPS_RATE - The total number of read(2) and write(2) syscalls per second per process

?

devZer0 avatar Sep 01 '22 11:09 devZer0

The latest htop version on main already has this feature (might also be in the latest release). Just look for IO_READ_RATE and IO_WRITE_RATE in Setup -> Screens -> List of Columns and add those as appropriate.

This does not show the number of syscalls, but the amount of data read/written.

Adding the IOPS additionally to the IO size mostly depends on if there is a structure providing those values readily that htop already processes as every additional source of information means a certain hit on overall performance.

BenBE avatar Sep 01 '22 12:09 BenBE

i explicitly mean the number/count of calls, not the byte rate.

that is something entirely different

you can have low iops rate with high disk troughput or have high iops rate with low disk trougput. it depends on the disks capabilities and if you write with small or large blocks

i know that per-process iops is NOT the same as disks iops, but i think it could be useful to identify processes which have high rate of read()/write() syscalls as this may show ressource hungry processes or weakness in implemaentation or whatever.

devZer0 avatar Sep 01 '22 12:09 devZer0

i'm not sure if we really should call that "IOPS", as IOPS is "IO Operations Per Second" and that mostly refers to disk writes/reads. and read()/write() may get pooled before hitting the disks

devZer0 avatar Sep 01 '22 15:09 devZer0