Take the 2-minute tour ×
Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems.. It's 100% free, no registration required.

I have a 1 core CPU installed on my PC. Sometimes, uptime shows load >1. How is this possible and what does this mean?

EDIT: The values go up to 2.4

share|improve this question

4 Answers 4

up vote 11 down vote accepted

Load is not equal to CPU usage. It is basically an indicator how many processes are waiting to be executed.

Some helpful links:

share|improve this answer
    
Oh, ok, that makes sense. Is there a way to get CPU usage, not load? –  Richard Rodriguez Mar 4 at 20:25
    
Well generally you could have many CPUs. One could be totally busy and the other just idling. Have a look at htop for a nice "graphical" overview. –  michas Mar 4 at 20:33

Uptime shows the output of /proc/loadavg for loads.

The manpage of man 5 proc says

   /proc/loadavg
          The first three fields in this file are load average figures giving
          the  number  of jobs in the run queue (state R) or waiting for disk
          I/O (state D) averaged over 1, 5, and 15  minutes. 

So you can have high loads even if you have 0% CPU load. One Core can gain loads up to 100% or 1 on multi processor systems.

See also High CPU load during I/O

share|improve this answer

uptime shows system load (not exactly CPU usage), which is described in man uptime as follows:

System load averages is the average number of processes that are either in a runnable or uninterruptable state. A process in a runnable state is either using the CPU or waiting to use the CPU. A process in uninterruptable state is waiting for some I/O access, eg waiting for disk. The averages are taken over the three time intervals. Load averages are not normalized for the number of CPUs in a system, so a load average of 1 means a single CPU system is loaded all the time while on a 4 CPU system it means it was idle 75% of the time.

As long as the load is less than the number of CPU cores you have, it should be fine. If it gets above, it means that your system is not able to cope with its workload "real time". Thus, some processes need to wait to get CPU time (or IO access). A waiting line is created.

If you have a 2.7 load it means that on average (during the last 1, 5 or 15 minutes, depending on the value you look at), 2.7 processes are trying to execute in parallel, but you only have 1 core, so your system is overloaded. You're asking too much from it.

Don't panic though, it may not be such a problem: once the work is finished, things usually get back to normal.

share|improve this answer
 ps aux --sort -rss |head -15

This will sort 15 processes most used by rss memory

Also this will sort most used processes by cpu and memory

 ps aux --sort -pid |head -15

If you have 1 CPU load more than 1 is warning, examine the process list and see who of them uses the most CPU and RAM

When you see most used processes try to see what files are open with

lsof -p [PID_most_used]

Also it would be nice if you give ouptut from top command

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.