Why does disk I/O slow down a CPU bound task?
Richard W.M. Jones
rjones at redhat.com
Tue Mar 31 22:26:32 UTC 2015
On Tue, Mar 31, 2015 at 12:21:55PM -0700, Dave Johansen wrote:
> You're right that is a problem because my "purely CPU bound task" was
> actually writing to disk every 10 seconds, so I've attached an updated
> version that pre-allocates a vector and stores the results there so they
> can be dumped when the users presses Ctrl-C. With this update, the "CPU
> bound task" should only using CPU and existing memory but I still see the
> same slow down in the "CPU bound task" when the disk I/O is happening.
For the definitive test, you might want to add a call to mlockall()
into your program. It is supposed to lock every page of your process
into RAM (just in case it is being swapped out, and hence using I/O).
I guess you will also need to run the CPU test program as root.
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
Read my programming and virtualization blog: http://rwmj.wordpress.com
libguestfs lets you edit virtual machines. Supports shell scripting,
bindings from many languages. http://libguestfs.org
More information about the devel