'time' for disk io
Is there a way of testing the disk i/o of a process like time does for timing?
I know of pidstat but that only works for running processes. |
collectl is also cognisant of taskstats and maintains history, try that.
Or maybe blktrace depending on what you really want. |
what I have is a 24x7 daemon with heavy i/o.
I have found now that I need to try and limit the disk i/o using my brain. So I want to try different optimisations. I have partial data files which I can run "one-shot" I want to test different iterations and compare the disk stats on different runs. |
If at all possible, try to adjust the algorithms used by a "disk-I/O intensive" process. If not, look hard at cacheing. Hardware purchases are often called for ... caching controllers, faster drives, solid-state.
|
Quote:
Quote:
I've had some success, I split disk to a double SSD to spread the load and it keeps it generally below the red line but still revs a bit high on occasion for my taste. I will up the CPU this weekend see if more timeslices will help. Then the boss wants things done and the bloody customers! |
This looks interesting
Quote:
|
If these are temporary files, then you could set up a ramdisk to hold them.
|
Quote:
no can't do ramdisk as the data has to be written and I share it over NFS and you can't share ramdisk. Heart transplant surgery is very easy, it's keeping the patient alive, that's the trick ;) |
one of the tricks with collectl is to run it for awhile or better yet continously and then play back the data with '--top iokb'. to see all the top options try 'collectl --showtopopt' as there are lots of things you can sort by. you can also play back the overall diskio and/or plot it to correlate the two.
only gottcha is to see process i/o stats you need to run collectl as root OR with the processes's uid otherwise collectl can't read the io stats. -mark |
All times are GMT -5. The time now is 01:26 PM. |