Revisa la CPU y la memoria en tu servidor Linux
Los recursos como la CPU y la memoria (RAM) son una parte integral de la funcionalidad de tu sitio. Si tu código usa demasiado, el sitio puede volverse lento o dejar de funcionar por completo. Todos los demás procesos (como el correo electrónico) comparten los mismos recursos con los sitios en tu servidor. Cualquier proceso que requiera más de la parte justa (esperada) puede hacer que el servidor se caiga completamente.¿Por qué debería verificar el uso de recursos?
- Tu sitio basado en bases de datos (como WordPress) es lento.
- El correo electrónico está tardando en llegar.
- Tu sitio muestra un error o simplemente gira
- Las tareas realizadas en tu servidor están tardando más de lo normal (como las copias de seguridad).
¿Cómo verifico el uso de recursos?
Linux ofrece varias herramientas para investigar el uso de CPU y memoria como top , sar y watch .
El comando top te permite ver las tareas del sistema en ejecución en tiempo real. Puedes ver información general como el tiempo de actividad, el promedio de carga, el uso de CPU y memoria. El modificador -c te permite ver el nombre del programa en COMANDO. Para una lista completa de las teclas de atajo, usa man top en SSH.
[root@server ~] $ top -c top - 15:08:23 hasta 115 días, 6:37, 2 usuarios, promedio de carga: 1.76, 1.35, 1.13 Tareas: 330 en total, 1 en ejecución, 326 en suspensión, 0 detenidas, 3 CPU (s) zombies: 0.7%nosotros, 2.9%s y, 0.0%ni, 81.5%id, 14.9%wa, 0.0%hi, 0.1%s yo, 0.0%s t Mem: 32754672k total, 28808088k used, 3946584k free, 321260k buffers Swap: 8388604k total, 25992k used, 8362612k free, 8140560k PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 6926 mysql 20 0 130g 16g 22m S 52.2 27065: 56/usr/sbin/mysqld --basedir =/usr --datadir =/var/lib/mysql --plugin-dir =/usr/lib64/mysql/plugin 2454 td-agent 20 0 1210m 160m 2440 S 0.7 0.5 347: 19.48/opt/td-agent/embedded/bin/ruby -Eascii-8bit: ascii-8bit/
El Informe de actividad del sistema (sar) es una herramienta que te ayuda a monitorear las estadísticas de uso de tu servidor. Sar es parte del paquete sysstat . Usar solo el comando sar te dará estadísticas de las últimas 24 horas.
sar -f te permite ver archivos de registro históricos a partir de las 12:00 a.m. del día.
[root@server ~] $ sar -f/var/log/sa/sa10 Linux 2.6.32-042stab141.3 (server-hostname.net) 01/10/2022 _x86_64_ (24 CPU) 12:00:01 AM CPU %user %nice%s ystem %iowait%s verde azulado %inactivo 12:10:01 AM todos 1.92 0.00 0.39 0.00 0.00 97.69 12:20:01 AM todos 1.63 0.00 0.34 0.00 0.00 98.02 12:30:01 AM todos 1.64 0.00 0.41 0.01 0.00 97.94 12:40:01 AM todos 2.85 0.00 0.61 0.00 0.00 96.54 12:50:01 AM todos 2.71 0.00 0.57 0.01 0.00 96.72 01:00:01 AM todos 2.02 0.00 0.38 0.00 0.00 97.60 01:10:01 AM todos 1.43 0.00 0.30 0.00 0.00 98.27
sar -r mostrará las estadísticas de memoria libre y usada
[root@server ~] $ sar -r Linux 2.6.32-042stab141.3 (server-hostname.net) 02/02/2022 _x86_64_ (24 CPU) 12:00:01 AM kbmemfree kbmemused %memused kbbuffers kbcached kbcommit %commit 12:10:01 AM 99454800 32354304 24.55 1429856 22624260 8285744 5.91 12:20:01 AM 99760972 32048132 24.31 1429884 22631184 7960428 5.68 12:30:01 AM 99751920 32057184 24.32 1429920 22638392 7974804 5.69 1240:01 321710 9963 244380 8035000 5.73 12:50:01 AM 99752696 32056408 24.32 1430012 22644804 7891100 5.63
La vigilancia de Linux te permite ver comandos o tareas a medida que se completan o ejecutan. watch "mysql -e'show full processlist; '" mostrará todas las consultas de mysql en ejecución, actualizándose cada 2 segundos.
Cada 2.0s: mysql -e'show full processlist; ' Sáb 12 de febrero 11:09:56 2022 Id User Host db Command Time State Info 26574057 mysql_db1 localhost mysql_db1 Consulta 2 Enviando datos SELECT * from db_data_main donde DOT_NUMBER = 1381207 26574063 mysql_db1 localhost mysql_db1 Query 1 donde DOT_DOT_main * 2657 mysql_wp3 localhost mysql_wp3 Dormir 0 NULL 26574068 root localhost NULL Consulta 0 init mostrar lista de procesos completa
Siguientes pasos
El alto uso de recursos puede ser único causado por tráfico malicioso o un proceso colgado (como una copia de seguridad grande). El alto uso frecuente de recursos que no está causado por el tráfico o un proceso bloqueado solo se puede resolver mediante la optimización o actualización. Ten en cuenta que si no optimizas tu servidor y sitios, una actualización es solo una solución temporal .
Señales de que puede ser hora de optimizar (servidor y sitio (s))
- No causado por tráfico malicioso
- El código del sitio está desactualizado/genera errores obsoletos
- El uso de CPU es alto pero el uso de memoria es bajo.
- Las consultas de MySQL se retrasan cuando aumenta el tráfico
Señales de que puede ser hora de actualizar
- El tráfico a tu (s) sitio (s) aumenta constantemente
- El servidor se ha optimizado para las necesidades de tu sitio
- Has optimizado tu (s) sitio (s) eliminando largas consultas de mysql y actualizando el código para admitir versiones más recientes de PHP.
- Estás usando caché (como Memcache) pero la carga permanece alta