CPU Utilization

Posted June 14, 2021 312 views

When running a simple top command, you notice that while running nothing else, the User role may consume 7% of the droplet. Idle fluctuates between 92%-88%. However, when looking at the DigitalOcean dashboard I noticed that during those same instances, the droplet’s ‘CPU Usage’ statistic barely reached 1%.

I’m curious about the 'CPU Usage’ stat in general. If an idle reading is 0% while the DigitalOcean 'CPU Usage’ stat shows maybe 1%- does that mean that 100% of the CPU was dedicated to a task at that moment, but during that moment the CPU itself was only taxed at 1% of its total capability??

Trying to wrap my head around monitoring and system health. Thank you!!

1 comment
  • The above may be an extreme example but for instance, I have a script that creates a connection from a remote server, then runs a top command every 1 second to get second by second CPU stats. I noticed idle percentage is usually around 87-92-100% when captured on a per-second basis. However, the CPU % in DigitalOcean shows roughly 2% during this same period.

    Just curious about the disconnect. Is idle % a good characteristic to measure performance?

    ** In Addition- I noticed running the Top command from the droplet itself displays different results than my script that uses SSH to run the top command from a remote connection. Maybe that is not an accurate depiction of current server status

These answers are provided by our Community. If you find them useful, show some love by clicking the heart. If you run into issues leave a comment, or add your own answer to help others.

Submit an Answer
1 answer

Hi there,

Idle means that the CPU is not doing any work, for example, if the CPU is Idle at 95% then the usage is actually 5%.

I could suggest running the htop command on your server as you will get a better visual representation of the CPU utilization.

The top command shows you the load average of your CPUs. For example, roughly speaking, if you have 1 CPU, then 100% CPU usage would be represented as 1. The load average would match the Load (1/5/15) graph in your DigitalOcean metrics.

Hope that this helps.

  • Thank you for that explanation. I think the top commands are run at different intervals and seconds and the metrics collected are averaged by DigitalOcean versus capturing live per-second data, which is why I was seeing fluctuations. Overall they trended together after a while.

    I did enable metrics so the new graphs help a ton, as well as being able to set alerts, that will be super helpful.

    Thanks for your timely response