El Comando Top Linux es implementado si usted esta experimentando problemas de lentitud en un nodo VPS o Servidor Dedicado y ya detecto que el problema es un alto uso de CPU o Memoria, entonces uno de los primeros pasos a seguir en este caso es ejecutar el comando «TOP» en la línea de comandos. Puede encontrar una respuesta típica como la siguiente.
top – 23:12:41 up 108 days, 5:14, 2 users, load average: 0.49, 1.39, 4.34
Tasks: 298 total, 1 running, 297 sleeping, 0 stopped, 0 zombie
Cpu(s): 7.5%us, 1.5%sy, 0.0%ni, 89.3%id, 1.6%wa, 0.1%hi, 0.1%si, 0.0%st
Mem: 8087364k total, 6626384k used, 1460980k free, 116044k buffers
Swap: 10136972k total, 96572k used, 10040400k free, 3866028k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
5028 mysql 15 0 275m 42m 4968 S 5.3 0.5 0:41.76 mysqld
1750 named 21 0 249m 13m 1644 S 0.0 0.2 0:07.35 named
30394 userx 16 0 195m 36m 7700 S 0.0 0.5 0:00.59 php
7628 userx2 16 0 195m 35m 6924 S 0.0 0.4 0:00.16 php
30735 userx3 16 0 194m 35m 7732 S 0.0 0.5 0:01.11 php
620 userx4 16 0 193m 34m 7088 S 0.0 0.4 0:00.49 php
En este caso podemos observar el porcentaje de uso de CPU y Memoria disponible actualizado cada segundo. Es decir, Podemos matar alguno de los procesos con su PID especifico.
Por ejemplo
– kill 7628- Terminar Todos los Procesos de un Usuario
killall -u userx
Esto con el fin de diagnosticar si el usuario es el que esta causando la sobrecarga. Si un usuario especifico esta causando la carga puede suspenderlo desde su panel respectivo y verificar si el problema persiste. Si el problema se debe a algún servicio en especifico como MYSQL o APACHE, debe hacer una optimización de la configuración de los servicios respectivos.
Si la causa no esta clara podemos hacer una ejecución de «vmstat -1». Una respuesta típica es la siguiente:
procs ———–memory———- —swap– —–io—- –system– —–cpu——
r b swpd free buff cache si so bi bo in cs us sy id wa st
2 0 180 160052 537364 5164784 0 0 0 288 1400 978 11 1 88 0 0
2 0 180 160184 537368 5164780 0 0 12 176 1353 1043 14 2 84 0 0
0 0 180 160100 537384 5164764 0 0 64 888 1401 1122 16 5 78 1 0 - Verificación de las columnas «wa»
Lo mas Importante es verificar las columnas «wa» que representan el tiempo de «CPU en tiempo de Espera» o «Cpu Wait Time» y la columna «Id», «Cpu Idle»
Entonces si la columna «wa» es muy alta, valores mayores de 0, 25 se considera muy alta, por lo tanto lo mas probable es que la carga sea a causa de sobrecarga de uso de disco, «High IO» o sobrecarga en la lectura / escritura de disco.
Puede verificar si este en definitiva es el caso con el comando «iostat» o «iostat -x 5» para que se ejecute cada 5 segundos. Esta es una respuesta típica del comando iostat:
Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s avgrq-sz avgqu-sz await svctm %util
sda 0.00 13.20 0.00 6.80 0.00 160.00 23.53 0.02 2.50 0.26 0.18
sda1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
sda2 0.00 9.60 0.00 2.80 0.00 99.20 35.43 0.01 2.00 0.29 0.08
sda3 0.00 3.60 0.00 4.00 0.00 60.80 15.20 0.01 2.85 0.25 0.10
sda4 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
sda5 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
sdb 13.80 37.60 5.00 5.80 252.80 347.20 55.56 0.03 3.11 1.80 1.94
sdb1 0.00 1.40 0.00 0.80 0.00 17.60 22.00 0.00 0.25 0.25 0.02
sdb2 0.00 6.40 0.00 0.80 0.00 57.60 72.00 0.00 1.00 1.00 0.08
sdb3 13.80 29.80 5.00 4.20 252.80 272.00 57.04 0.03 3.54 2.00 1.84
Un valor alto en la columna de %util quiere decir en consecuencia que en ese disco duro en especifico hay una alta concentración de carga.
Por lo tanto esta es una causa mas compleja de sobrecarga de un servidor y que además podría evaluarse con el comando «iotop». Aunque no viene por defecto, puede instalarlo fácilmente con yum «yum install iotop» - Respuesta del Comando Top Linux
Total DISK READ: 42.72 K/s | Total DISK WRITE: 151.45 K/s
TID PRIO USER DISK READ DISK WRITE SWAPIN IO> COMMAND
8 rt/3 root 0.00 B/s 0.00 B/s 0.00 % 0.49 % [migration/2]
11 rt/3 root 0.00 B/s 0.00 B/s 0.00 % 0.39 % [migration/3]
14 be/3 root 0.00 B/s 0.00 B/s 0.00 % 0.39 % [events/0]
9897 be/4 nobody 0.00 B/s 0.00 B/s 0.00 % 0.19 % httpd -k start -DSSL
1632 be/3 root 0.00 B/s 15.53 K/s 0.00 % 0.19 % [kjournald]
552 be/3 root 0.00 B/s 116.50 K/s 0.00 % 0.16 % [kjournald]
9896 be/4 nobody 0.00 B/s 0.00 B/s 0.00 % 0.10 % httpd -k start -DSSL
10097 be/4 furiamag 0.00 B/s 0.00 B/s 0.00 % 0.10 % php
10118 be/4 furiamag 0.00 B/s 0.00 B/s 0.00 % 0.10 % php
9900 be/4 nobody 42.72 K/s 3.88 K/s 0.00 % 0.04 % nginx: worker process
6360 be/4 mailnull 0.00 B/s 0.00 B/s 4.59 % 0.00 % exim -bd -q60m
Sin embargo en este caso el proceso en la columna que genere mayor porcentaje de uso será el culpable del problema.
Tiempo de lectura estimado: 4 minutos