Últimamente en nuestros servicios de hosting web algunos de nuestros usuarios suelen tener problemas de rendimiento en sus servidores, normalmente esto suele ser por un mal desarrollo en sus sistemas instalados en el mismo, ¿y porque no? Incluso casos donde tuvimos que apoyarlos en la limpieza de sus sitios web por algún script infectado que podría estar causando consumos excesivos en sus recursos.
Entonces, de ahí creo que seria una buena oportunidad para escribir sobre el caso, ellos nos saben las razones de esta lentitud en su servidor, por lo cual aquí os mostraremos como saber que esta saturando mi servidor, así mismo podremos ver que modulo del servidor es el que se esta ejecutando en dichas cuentas. Así podremos identificar el problema y dar con la solución del mismo.
¿Razones más comunes por las cuales un servidor se pone lento?
Las razones por la cual un sitio web hospedado en un hosting o servidor web se pone lenta, pueden ser varias, sin embargo, podríamos listar las mas comunes en cuestiones técnicas, es decir, a primeras no diremos que es lo que ocasiona esto, sino que es lo que esta siendo afectado en el servidor que ocasiona que las descargas de tu sistema o tu sitio web se ponga lento.
Un servidor normalmente tiene características que definen sus capacidades, entre los cuales las más comunes son la CPU y la RAM. Estos 2 componentes mientras mas potentes mejor, no obstante, no por mucha potencia significa que podríamos omitir problemas de un mal uso del servidor.
Procurando hablar sin mucho tecnicismo de forma que puedas entenderlo…
¿Qué es la CPU y que hace en el servidor?
Prácticamente es el procesador, o como decía aquel niño prodigio de la informática (en Honduras sino me equivoco, que incluso se hizo viral allá por los años 2017), “el procesador es el que procesa todo”.
La CPU o UCP en ingles, es un componente físico, es decir un hardware que prácticamente recibe las instrucciones y los administra hacia el software del servidor, ósea, a los plugins, componentes etc. O a los programas en caso de hablar de procesadores de una computadora común.
En los procesadores una característica importante es la frecuencia o velocidad en que procesa los datos, esta velocidad se mide por MHz o GHz, cada CPU puede tener una u otra de estas capacidades según su potencia, aunque normalmente en los servidores web lo que se usa es el GHz, que significa GigaHercios, el otro es MegaHercios.
Aplicando estos fundamentos, la CPU podría ser una de las causas de la lentitud del servidor, según su capacidad o que algo lo esté saturando.
¿Qué es la RAM y como funciona en el servidor web?
Sin dar muchos rodeos la Memoria RAM, lo que hace es mantener toda la información en ejecución y disponértelo cuando lo requieres, imaginando en una simple computadora, si tu ejecutas tu navegador, pero a la vez tienes abierto otros varios programas (Word, Spotify, etc.) mientras navegas en el navegador web, alguien tendrá que encargarse de no olvidar que programas están abiertos y que es lo que están haciendo, que es lo que se ha escrito en el Word y muchos otros datos que deben mantenerse simultáneamente mientras ejecutas otros al mismo tiempo. Ahí entra nuestra señora RAM, en los servidores es lo mismo, se necesita de una buena memoria RAM que sea capaz de ejecutar varias cosas a la vez.
Entonces, si tenemos varios sitios webs que se ejecutan paralelamente, estos requieren de varios módulos del servidor a la vez. MYSQL, PHP, firewall por solo mencionar algunos.
¿Como saber que es lo que esta ralentizando mi sitio web?
Para esto necesitamos una terminal o algún software que nos permita conectarnos a nuestro servidor de forma remota por SSH (Secure Shell), para ello el mas común es conocido como Putty, no tiene costo y es fácil de conectarse al servidor, puedes descargarlo de su sitio web oficial.
Una vez conectado instalado el cliente en nuestra PC, solo necesitamos 3 datos para conectarnos a nuestro servidor:
- IP de nuestro servidor
- Usuario (normalmente es root)
- Password del usuario
Estos datos al momento de adquirir el servicio del servidor, debieron habértelo provisto, sino siempre puedes pedir uno nuevo a tu proveedor.
Como podemos ver, en la imagen de arriba solo basta poner la IP en la celda amarilla, luego darle en el botón Open y se nos pedirá en una ventana negra el usuario primero y después la contraseña, al poner la contraseña no aparece ningún texto, ósea que si lo escriben es normal que no aparezca ningún texto, no se asusten, el programa lo hace en modo oculto. Tal cual se muestra la imagen de abajo.
Al momento de conectarnos en principio la configuración estándar que ya viene por defecto en Putty basta.
Una vez dentro ejecutaremos el comando mas usado para poder ver los procesos que se ejecutan en el servidor en tiempo real. El comando top. Tan sencillo como escribir top, darle Enter y el sistema ya nos muestra dichos procesos.
[root ~]# top
Podemos ver en la imagen como es que se muestra normalmente los datos de dichos procesos, tocaremos los puntos mas importantes, si desean saber como leer todos los datos, me temo que tendremos que esperar a próximos posts publicados, aunque siempre esta San Google, hay mucha info respecto a eso.
En la imagen podemos ver que nos da los reportes, entre ellos lo que nos interesa son las columnas USER, CPU, MEM, COMMAND y quizá PID si se tratase de hacer un análisis más profundo, aunque en este caso no creo que sea necesario tocar el tema.
- USER.- Nos dice que usuario esta ejecutando ese proceso, los nombres como nobody, root, mysql son los del sistema por defecto, el resto deberían ser los nombres de las cuentas de hosting que están almacenadas en el servidor. (Pueden ver que borre algunos por cuestiones de seguridad).
- CPU.- Es el consumo de la capacidad del CPU.
- MEM.- Es el consumo de la capacidad de la Memoria RAM
- COMMAND.- es el módulo que está ejecutando dicho proceso.
Entonces, con estos datos podemos ver cada proceso, que porcentaje de la capacidad se esta usando, es tan sencillo como ver el proceso que levanta números más elevados, entonces es ahí donde deberíamos fijarnos que usuario está ejecutando dicho proceso y que modulo se esta ejecutando. En la captura de ejemplo podemos ver que un usuario que termina en «itio» tiene un proceso muy elevado de CPU, llegando al 53.3%, el módulo que hace que la CPU consuma ese porcentaje es php-fpm. Entonces esto puede darnos una pista de que el desarrollo en PHP de ese sitio web o ese sistema instalado en esa cuenta esta generando mucho consumo, probablemente por un mal desarrollo del sistema, quizá por una infección de algún virus, o simplemente por falta de actualizaciones. Aquí ya entra lo que es investigar el caso. Si queremos saber a detalle exactamente que archivo del usuario es el que esta ejecutando ese modulo, podríamos usar el PID, el id del proceso, aunque normalmente. Pero eso ya sería para otro artículo extenso como este.
Normalmente con saber que usuario esta haciendo consumo de recursos en principio basta para proseguir a revisar los archivos de dicha cuenta, a ver si hay algún archivo extraño dentro del mismo.
No creo que haga falta mencionar que en el caso de la RAM es lo mismo, medir el porcentaje del uso y que usuario consume tantos recursos.
Se debe aclarar que la columna COMMAND, puede variar en cuanto al controlador de PHP que se use, en el ejemplo mostrado, se muestra como php-fpm, es porque se esta usando el controlador de FastCGI, sin embargo, en los sistemas Linux normalmente puede variar entre SuPHP y otros, de hecho, en este articulo hablamos un poco al respecto.
Entonces, según el controlador, el nombre puede variar, pero normalmente siempre incluye las letras PHP que hace referencia al lenguaje de programación que maneja el controlador asignado..
Algunos controladores no te muestran el nombre del usuario que ejecuta dichos módulos, así que, según la necesidad del servidor, se podría optar por uno u otro.
Si necesitas un servicio de hosting web administrado con un servicio personalizado siempre puedes optar por los nuestros, no somos goddady, pero te aseguro que puedes contactarnos directamente por nuestros medios y la respuesta es inmediata, por no decir en vivo xD.
¡Saludos!
2 respuestas a “¿Cómo ver que está saturando mi servidor web?”
[…] Interface”, este controlador ejecuta los procesos de PHP como un módulo de CGI, es decir, si tendríamos que monitorear los procesos del servidor, (con el comando top por ejemplo SSH.) entre la lista de procesos te saldrá con ese nombre, CGI. […]
[…] en post anterior habíamos enseñado como conectarnos mediante SSH, sin embargo, es tan sencillo, que se necesita la IP de nuestro servidor, el usuario y el password, […]