High CPU load caused by slow disks

hard driveperformanceperformance-monitoringwindows-server-2003

We are running a online application on a 3-year old server (quadcore Xeon, 4GB RAM, SAN-disks). The server hosts besides the web application a SQL-, FTP-, SFTP, SMTP, and POP-services.

Over the years the number of customers has increased significantly and the server is now pushed to the limits, often reaching 100% CPU over large time frames.

When I monitors the server performance I noticed that Task manager often reports 100% CPU (performance tab) or close to it but System Idle process (process tab) reports something like 30%.

Question:
Can the total CPU workload be 100% despite System Idle process having > 0% ? Is my observation correct?


UPDATE:

TomTom kindly answered my qestion and gave the following information:

  • A task waiting for disc IO will be taken off the CPU until that has been answered by the scheduler.
  • Yes, it is possible to hav a100% workload and spend 30% of that in the idle process. Because this does not mean those 30% are wasted.
  • What IS possible is that the CPU is 100% busy but in power savings mode becacause of all the waiting.
  • An example for waiting could be: Because it may be waiting for disc IO.

Rephrased question: In the picture below, it shows CPU usage = 100% Why isn't the total CPU usage 100 - 58 = 42?

enter image description here

Best Answer

Let's start with your guess - it is wrong. A task waiting for disc io will be taken off the CPU until that has been answered by the scheduler.

Second, the "System Idle Process" is not "nothing is there to do". A look into wikipedia:

In Windows NT operating systems, the System Idle Process contains one or more kernel threads which run when no other runnable thread can be scheduled on a CPU. For example, there may be no runnable thread in the system, or all runnable threads are already running on a different CPU. In a multiprocessor system, there is one idle thread associated with each CPU.

There is more information in there. Generally said - that is not "CPU does nothing" but "CPU is busy with the stuff in the idle process".

So, yes, it is possible to hav a100% workload and spend 30% of that in the idle process. Because this does not mean those 30% are wasted. That said, look at the power savings settings.

What IS possible is that the CPU is 100% busy but in power savings mode becacause of all the waiting. Changing power savings would show available cpu time. 3 years ago is young enough to have some decent power savings.

And please, what is "typical for that time"? 8 cores and 64gb memory with a 24 disc SAS subsystem? That was the server I was buying - ah - 4-5 year ago ;)