Messages in this thread | | | Subject | Re: Meaningless load? | From | Simon Klinkert <> | Date | Thu, 11 Oct 2012 15:17:59 +0200 |
| |
On 11.10.2012, at 10:13, Mike Galbraith wrote:
>> On 11.10.2012, at 06:02, Mike Galbraith wrote: >> >>> Makes perfect sense to me. Work _is_ stack this high. We don't and >>> can't know whether the mountain is made of popcorn balls or >> boulders. >> >> That's the point. Afaik the D state never represents 'work'. These >> processes are waiting for something. > > Yeah, the whole pile is waiting, but they're not idle. There are N > tasks pointed at CPUs. >> >> Let's say we have 10,000 processes in the D state (and thus a load of >> ~10,000) doing nothing. What should the load tell me? The machine is >> under fire? There is nothing to do? There might be something to do but >> the machine doesn't know? > > They are doing something, just not at the particular instant you see > them in D state. D state pushing load through the roof tells you that > you have a bottleneck. Whether the bottleneck is a bit of spinning rust > or insufficient NR_CPUS doesn't matter much, both are bottlenecks.
Your explanation sounds correct to me but I think in my case, there are only 2-3 process waiting for spinning rust (or rather nfs) and the other processes are all in a heavy lock contention in the VFS layer. So a load of 10,000 is helpful to indicate that there is a (software) bottleneck but if I want to see the 'real (work)load' on this machine it isn't really helpful to show a load of 10,000 instead of three or whatever. It's a question of interpretation.
Simon
| |