Here are some tips on obvious problems you might encounter:
Look for several identical jobs that are owned by the same user. This problem might occur because of a running script that starts a lot of background jobs without waiting for any of the jobs to finish.
Look for a process that has accumulated a large amount of CPU time. You
can identify this problem by checking the TIME field in the ps output. Possibly, the process is in an endless loop.
Look for a process that is running with a priority that is too high. Use
the ps -c command to check the CLS field, which
displays the scheduling class of each process. A process executing as a real-time
(RT) process can monopolize the CPU. Or, look for a timesharing
(TS) process with a high nice number. A user
with superuser privileges might have increased the priority of a process. The system
administrator can lower the priority by using the nice command.
Look for a runaway process. A runaway process progressively uses more
and more CPU time. You can identify this problem by looking at the time when the process
started (STIME) and by watching the cumulation of CPU time (TIME) for a while.