Para identificar procesos con alto consumo de cpu podemos utilizar el comando ps para identificar el ID.
[root@proxy ~]# ps -e -o pcpu,pid,user,tty,args | sort -n -k 1 -r|head 1.1 15657 mysql ? /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --user=mysql --pid-file=/var/run/mysqld/mysqld.pid --skip-external-locking --socket=/var/lib/mysql/mysql.sock 0.2 16167 apache ? /usr/sbin/httpd 0.2 15834 apache ? /usr/sbin/httpd 0.2 15833 apache ? /usr/sbin/httpd 0.2 15709 apache ? /usr/sbin/httpd 0.2 15694 apache ? /usr/sbin/httpd 0.2 15693 apache ? /usr/sbin/httpd 0.1 22922 root pts/1 -bash 0.1 22916 root ? sshd: root@pts/1 0.1 16166 apache ? /usr/sbin/httpd
Un ejemplo, para ver los procesos de Apache, incluimos el comando | grep -i httpd
[root@proxy ~]# ps -e -o pcpu,pid,user,tty,args |grep -i httpd | sort -n -k 1 -r|head 0.2 16167 apache ? /usr/sbin/httpd 0.2 15834 apache ? /usr/sbin/httpd 0.2 15833 apache ? /usr/sbin/httpd 0.2 15694 apache ? /usr/sbin/httpd 0.2 15693 apache ? /usr/sbin/httpd 0.1 16166 apache ? /usr/sbin/httpd 0.1 16165 apache ? /usr/sbin/httpd 0.1 15943 apache ? /usr/sbin/httpd 0.1 15832 apache ? /usr/sbin/httpd 0.1 15711 apache ? /usr/sbin/httpd
Otra herramienta útil es el comando top, esta herramienta por default va a refrescar cada 3 segundos mostrando los procesos que consumen más CPU.
top - 21:58:32 up 22 days, 4:50, 3 users, load average: 0.00, 0.00, 0.00 Tasks: 117 total, 1 running, 116 sleeping, 0 stopped, 0 zombie Cpu(s): 0.0%us, 0.2%sy, 0.0%ni, 99.8%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st Mem: 1033508k total, 807808k used, 225700k free, 13060k buffers Swap: 4194296k total, 252816k used, 3941480k free, 54556k cached PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 15693 apache 15 0 176m 156m 5612 S 0.0 15.5 1:05.20 httpd 15834 apache 16 0 176m 149m 5656 S 0.0 14.8 1:00.69 httpd 15694 apache 18 -1 176m 77m 5192 S 0.0 7.7 1:02.99 httpd 16165 apache 15 0 51304 28m 5616 S 0.0 2.8 0:36.56 httpd 15657 mysql 15 0 142m 28m 4240 S 0.0 2.8 4:23.42 mysqld 15695 apache 15 0 49604 27m 5780 S 0.0 2.7 0:35.84 httpd 15832 apache 17 0 52116 27m 5644 S 0.0 2.7 0:33.53 httpd 15943 apache 15 0 51380 27m 5676 S 0.0 2.7 0:33.49 httpd 15711 apache 16 0 51100 27m 5768 S 0.0 2.7 0:39.47 httpd 16167 apache 15 0 51344 27m 5140 S 0.0 2.7 0:45.88 httpd 15698 apache 15 0 49900 26m 5180 S 0.0 2.6 0:39.16 httpd
La columna PID nos muestra el ID del proceso que esta consumiendo más CPU, en este caso 15693. Ahora mientras esta corriendo podemos modificar la salida, por ejemplo si presionamos la tecla >, se va a ordenar por la siguiente columna de la derecha en este caso %MEM.
O bien, presionando la tecla: “BLOQ MAYUS+M” y para el consumo de CPU seria las teclas “BLOQ MAYUS+P”.
Herramientas de Monitoreos en Linux – Identificando procesos con alto consumo de CPU