Sobre carga de Servidor o VPS «High load»

Share on facebook
Facebook
Share on twitter
Twitter
Share on linkedin
LinkedIn
Share on whatsapp
WhatsApp
Share on email
Email
Comando TOP Consola
Indice

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 una de los primeros pasos a seguir es ejecutar el comando «top» en la linea de comandos. Puede encontrar una respuesta tipica 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. Podemos matar alguno de los procesos con su PID especifico. Por ejemplo:

kill 7628

O terminar todos los procesos de un mismo usuario para diagnosticar si eso ayuda en el problema.

killall -u userx

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 algun 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 ejecucion 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

Importante verificar las columnas «wa» que representan el tiempo de «Cpu en tiempo de Espera» o «Cpu Wait Time» y la columna «Id», «Cpu Idle»

Si la columna «wa» es muy alta, valores mayores de 0, 25 se considera muy alta 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 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 que en ese disco duro en especifico hay una alta concentración de carga.

Esta es una causa mas compleja de sobrecarga de un servidor y podria evaluarse con el comando «iotop». Aunque no viene por defecto, puede instalarlo facilmente con yum «yum install iotop»

Esta es una respuesta tipica de este comando:

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

Por supuesto en este caso el proceso en la columna Io que genere mayor porcentaje de uso será el culpable del problema.

Share on facebook
Facebook
Share on google
Google+
Share on twitter
Twitter
Share on linkedin
LinkedIn
Share on pinterest
Pinterest
Síguenos
Otras notas que pueden Interesarte
Publicar en Twitter en 2020
Tips para publicar en Twitter

Si aún no posees cuenta en twitter o la tienes, pero no has logrado el crecimiento que deseas, te dejaremos algunas recomendaciones de cómo publicar

Leer »