The top and sar commands are your best friends when attempting to determine what processes are using the majority of the CPU. Typically, folks use top first, and top may be able to easily spot the process that is using the majority of the CPU. In this example, the Java process is using 90% of the CPU. If the top command does not easily spot the process that is using the majority of the CPU, the sar command may be helpful.
[root@server1 ]# top . . . PID User PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMANDS 4594 root 20 0 417768 144754 5803 S 90.0 5.2 0:41:49 Java . . .
One common cause of high CPU is a cron job that runs commands that cause high CPU. Check your cron table (crontab) to see if a scheduled job correlates to the time when there is high CPU. For example, perhaps a crontab job is creating gzip or bzip2 compressed archives of a certain directory, such as /etc, which may cause high CPU while the job is running.
Another cause of high CPU is an application that is doing something to use a lot of CPU. For example, if you have a web server (apache httpd ngnix) or an application server (tomcat websphere) installed on the system, the web app may be using excessive CPU.