Existen muchas formas de hacerlo (test de carga, de bases de datos, de ancho de banda, conexiones simultáneas...). Nosotros vamos a utilizar ApacheBench “ab”, que nos permite simular cientos de conexiones simultáneas a un servidor.
ab -n500 -c10 -k http://miweb/index.html
-n Es el número de conexiones totales que van a realizarse.
-c Es el número de clientes que va a haber conectados simultáneamente.
-k Realiza múltiples peticiones dentro de una sesión HTTP (KeepAlive). http://miweb/index.html URL sobre la cual se realizará la petición.
Y esta es la salida correspondiente a un test de estrés con la configuración por defecto usando mpm-prefork:
¿Debo usar mpm-prefork o mpm-worker?
Es preferible el uso de mpm-prefork. De ahora en adelante, salvo que se indique lo contrario específicamente, se asume que Apache está configurado para usar mpm-prefork.
Ajustar la configuración de LAMPP editando el archivo /opt/lampp/etc/httpd.conf, hemos de añadir al final lo siguiente:
HostnameLookups Off: Cuando Apache recibe una petición, resuelve la dirección IP y almacena el nombre de dominio en el log. El cliente tendrá que esperar hasta que la resolución se complete para que se sirva su petición, así que lo desactivamos.
StartServers: Especifica el número de procesos hijo que se crean al iniciar Apache. Dicho número está controlado dinámicamente según la carga del servidor, no hay motivo para modificarlo. En este caso, el valor por defecto es 5.
MinSpareServers: Número de procesos hijo en espera, listos para atender una petición. Si hay menos procesos hijo en espera que el valor de esta directiva, se crean a un ritmo máximo de uno por segundo. Para estos tests usaremos 5.
MaxSpareServers: El número máximo de procesos hijo en espera. Para estos tests, 20.
MaxClients: Número máximo de clientes simultáneos.
MaxRequestsPerChild: El número máximo de peticiones que un proceso hijo puede atender durante su vida. Usaremos 10.
Añadimos al final de httpd.conf
#OPTIMIZACION DEL RENDIMIENTO DEL SERVIDOR
#Estos valores son un tanto arbitrarios, los criterios de #seleccion son complejos, utilizaremos estos como prueba.
<IfModule prefork.c>
HostnameLookups Off
StartServers 5
MinSpareServers 5
MaxSpareServers 20
ServerLimit 256
MaxCients 256
MaxRequestPerChild 10
</IfModule>
Reiniciamos el servicio
sudo service vsftpd restart
Y probamos de nuevo
ab -n500 -c10 -k http://miweb/index.html
Y esta es la nueva salida del test
Vemos que los tiempos de respuesta se han mejorado bastante con un simple cambio en el fichero de configuración.
Medidas de optimización mejoradas: gnuplot
Como ya hemos visto ab sirve para hacer pruebas de carga al servidor. También podemos enviar los datos a un archivo csv o incluso mostrarlos gráficamente en pantalla.
ab –e grafica.csv -n500 -c10 -k http://miweb/index.html
Copiamos el archivo en una carpeta a la que tengamos acceso y lo editamos para quitarle la primera línea
sudo nano /opt/lampp/httdocs/grafica.csv
Esto crea un archivo csv en la carpeta personal donde podemos consultar los tiempos de ejecución durante las pruebas.
También podemos verlas gráficamente con la herramienta gnuplot para su instalación hacemos:
sudo apt-get install gnuplot
Para ejecutar solo se necesita abrir la terminal e ingresar el comando gnuplot en la consola. Esto genera que la terminal aparezca de la siguiente manera. Ojo, antes de hacerlo hay que borrar la primera línea del archivo .csv
gnuplot>set datafile separator “,”
gnuplot> plot ‘grafica.csv’ with lines
si no funciona, hay que instalar esta librería:
sudo apt-get install gnuplot-x11
Ahora ya si deberíamos ver los datos de forma gráfica.
Simulación de carga web en un servidor LAMPP con siege
Siege no está disponible para Windows, pero se utiliza para simular la carga web en un servidor Ubuntu.
Lo primero que hay que hacer es instalar siege con:
Lo primero que hay que hacer es instalar siege con:
sudo apt-get update
sudo apt-get install siege
Hacemos una prueba de carga
Siege –t 10s –b –c30 http://localhost:80/
Esto, nos devuelve los datos de carga del servidor.
WEBmin
Esta herramienta también permite gestionar de forma fácil el rendimiento del servidor web. Desde esta herramienta podremos manejar fácilmente las cuentas de usuario, las cuotas de disco, servicios, archivos de configuración, gestión de servidores Apache, DNS, compartir archivos y otras muchas cosas.
sudo add-apt-repository ‘deb http://download.webmin.com/download/repository sarge contrib’
sudo add-apt-repository ‘deb http://webmin.mirror.somersettechsolutions.co.uk/repository sarge contrib’
wget http://www.webmin.com/jcameron-key.asc
sudo apt-key add jcameron-key.asc
rm jcameron-key.asc
sudo apt-get update
sudo apt-get install webmin
Una vez instalado para acceder al panel de administración de Webmin deberemos poner la siguiente dirección en el navegador:
http://localhost:10000
Y si intentamos acceder a un ordenador remoto:
http://ipdelservidor:10000
A continuación nos pedirá un user y una contraseña, estos se corresponden a los mismos datos de acceso al servidor.
Instalación y configuración de Webalizer
Webalizer produce estadísticas anuales, mensuales, diarias y horarias. En los informes mensuales, se pueden producir varias estadísticas para mostrar un uso general, un uso por día y hora, un uso por sitios visitados, URLs, agentes de usuario (navegadores), referenciantes y país. Webalizer es altamente configurable mediante el uso de opciones en la línea de órdenes o a través de un archivo de configuración, permitiendo que el programa se ajuste a las necesidades individuales de forma fácil.
Bien, una vez vista la introducción comenzamos con su instalación.
En un terminal ponemos el siguiente comando:
sudo apt-get install webalizer
Una vez instalado pasamos a su configuración, editando el archivo /etc/webalizer/webalizer.conf
sudo gedit /etc/webalizer/webalizer.conf
para dar permisos al archivo
sudo su
chmod 755 /etc/webalizer/webalizer.conf
Cambiaremos lo siguiente:
LogFile /var/log/apache2/other_vhosts_access.log
OutputDir /var/www/webalizer
Incremental yes
ReportTitle Estadisticas de la web
HostName ubuntuserver14 #Si falla ponemos localhost
VisitTimeout 10
IgnoreSite /var/www/logs
Guardamos el archivo y actualizamos Webalizer con:
sudo webalizer
Despues de haber actualizado Webalizer, reiniciamos LAMPP. Una vez reiniciado pedimos a algún compañero que nos haga una visita a nuestra página para comprobar si nos suben las visitas.
Para ver nuestra página de Webalizer pondremos en el navegador la siguiente dirección.
file:///var/www/webalizer/index.html
En estas capturas de pantalla vemos que nos suben las visitas cada vez que entran en nuestra página web.
No hay comentarios:
Publicar un comentario