linux top cpus wa IOwait

> I was wondering if someone could point me in the right direction for 
> some doco? 

I don't know of any, but ... 

> I'm finding it hard to get a definition of what constitutes IOWait. 
> I know that IOwait is CPU time waiting for IO to happen to physical local 
> disks, but I'm unsure about the following scenarios and if they contribute to 
> IOWait: 

Not quite.  IOWait is a *software* state, indicating that a process or 
thread is blocked waiting for I/O to complete. 

This is different from "CPU time waiting for ..." in that it implies the 
software is making no progress, but *NOT* that your CPU is spending 
cycles working on it.[1] 

> - CPU time waiting for an NFS read/write to occur 

Yes, along with more or less any other "disk" I/O that happens to be run 
over the network -- as long as it is synchronous, and something is 
waiting on it. 

> - CPU time waiting for a network buffer to be read/written to. eg waiting for 
>   a full buffer to clear. 

Generally not.  I am not certain about blocking on a full buffer 
condition for sending data, but not for blocking while reading. 

> - Anything else?? 

Any other synchronous disk I/O, certainly.  Probably certain other, 
related, conditions where the kernel developers feel that the process is 
blocked on I/O. 

> PS. How do you set/query the network buffers in Linux? 

Via the socket fcntl / ioctl interface, or via the sysctls in 
/proc/sys/net, which are documented in the standard Linux kernel sysctl 
documentation. 


All that said, you might want to tell us why you are asking, not just 
what, since I suspect there is a question about why you have so much 
IOWait time on your system, or poor performance? 

Regards, 
        Daniel 

你可能感兴趣的:(Linux)