Comprobar si tu Página Web carga «lenta» o «rápido» usando Apache Benchmark (ab) y cómo poder solucionarlo.

Uno de los factores a tener en cuenta cuando disponemos de Aplicaciones o Servicios Web, es la rapidez con la que responden a nuestras peticiones. Para medir la velocidad vamos a usar Apache Benchmark y en caso de ser demasiado lentos, podemos seguir una serie de pasos que detallaré a continuación.

Qué es Apache Benchmark

Apache Benchmark es una herramienta que nos permite medir la velocidad, con la que sirve páginas nuestro servidor Apache. Esto nos sirve para saber cuantas solicitudes puede servir nuestro servidor web.

Para ello primero debemos instalar apache2-utils, que incorpora programas de utilidad para servidores web y entre ellos está Apache Benchmark.

Una vez instalado podemos empezar a utilizar el comando ab de la siguiente forma; incluyendo el parámetro -n le indicamos que realice 500 solicitudes a nuestra página web y de esta manera poder realizar una estimación de carga entre todas ellas. Recuerda que la URL debe terminar con una barra, para que la considere válida.

El resultado es algo extenso y puede que tardemos en comprender a qué corresponde cada dato.

Lo primero en lo que tenemos que fijarnos en el Time per request, que es el tiempo promedio de cada solicitud , que en este test es de 65 milisegundos, que es decente para tratarse de un blog con múltiples consultas hacia una base de datos.

¿Nuestra web, es lenta?

Si nuestra web procesa lentamente las peticiones, necesitamos seguir investigando un poco más a fondo para comprobar que está sucediendo. Para ello tendremos que conectarnos al servidor usando SSH.

Lo primero que vamos a hacer es usar el comando top. Para este caso en concreto nos fijamos en los parámetros que indican la carga de promedio del sistema load average. Podemos seguir la siguiente premisa: Si nuestro servidor dispone de 2 cores, lo normal es que no supere este valor, por lo que si lo supera, es que hay algo está ralentizando el sistema.

El primer valor corresponde a la carga durante el último minuto, el siguiente los últimos 5 minutos y el último se refiere a los últimos 10 minutos. Si nuestro sistema está sobrecargado, comprobamos los procesos que están ocupando la mayor cantidad de CPU en la lista que muestra el comando top.

¿Qué podemos hacer?

Una de las cosas que podemos hacer es cambiar las prioridades de los procesos para que el servidor web tenga la máxima prioridad. Si vamos a hacer esto tenemos que tener en cuenta que cuanto menor sea el número que indiquemos, mayor es la prioridad. Estos valores suelen ir comprendidos entre 0 y 19 pero por defecto comienzan con prioridad 0.

Para poder cambiar estos valores necesitamos usar el comando nice y renice. Usamos nice para iniciar un proceso con una prioridad determinada y renice para cambiar la prioridad de un proceso que ya está ejecutándose.

La forma rápida de cambiar la prioridad de un proceso usando la herramienta top, es usar la tecla r, indicar el número de proceso y a continuación introducir su nueva prioridad.

Cuando existen varios procesos hacerlo de uno a uno es algo tedioso y engorroso, por lo que en este caso podemos crear un pequeño Bash Script . En este sencillo script usaremos el comando pidof, que recibe el nombre del proceso y devuelve todos los identificadores que tienen ese nombre.

Otra forma más cómoda de gestionar las prioridades de procesos es usar la herramienta htop, que es un sistema de monitorización y gestión de procesos. Usaremos F7 y F8 podemos aumentar o reducir las prioridades de los procesos.

Por último, si hemos creado una tarea o script y necesitamos ejecutarla sin que esta ralentice demasiado el sistema, recuerda indicar su prioridad lo menor que sea posible.

¿El sistema sigue siendo lento?

Si volvemos a usar el comando ab para comprobar si ha mejorado la media de acceso y el sistema sigue siendo lento, debemos centrarnos en otros aspectos. Podemos comprobar los procesos que  está ejecutando el sistema usando ps -aux. Nos aportará algo más de información sobre qué procesos pueden estar haciendo que el sistema vaya lento.

USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND

De esta forma obtenemos más información sobre el comando que ha ejecutado el proceso y todos sus parámetros. También obtenemos la carga de CPU, memoria, etc … Recuerda que si necesitamos localizar un fichero en concreto, usaremos el comando locate <file>.

Por último, si necesitamos eliminar varios procesos que están ejecutándose usaremos el comando killall.

 

Deja una respuesta

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.