Академический Документы
Профессиональный Документы
Культура Документы
Contenido
Introduccin ...........................................................................................................................3
Objetivos.................................................................................................................................3
Entorno de pruebas ...............................................................................................................4
Descripcin.........................................................................................................................4
Configuracin de Software del servidor.............................................................................4
Configuracin de Hardware................................................................................................4
Configuracin de red..........................................................................................................4
Software utilizado para realizar pruebas de Performance.................................................4
Etapa de pruebas ...................................................................................................................5
Servidor Nginx....................................................................................................................5
Servidor Lighttpd ...............................................................................................................7
Servidor Apache ................................................................................................................8
Resultados...........................................................................................................................10
Conclusin............................................................................................................................10
Intr oduccin
Las aplicaciones web actuales y principalmente las aplicaciones de negocios, deben tener la caracterstica
de integracin y comunicacin con otras aplicaciones. En Ready2Fill desarrollamos un complejo y
poderoso sistema gestor de servicios web utilizando Catalyst; un framework de desarrollo para Perl,
denominado Business Service Agent (BSA) que permite integrar nuestra aplicacin WAM Online
Business Tool; con cualquier otro tipo de aplicaciones que cumpla con los estndares de las tecnologas
REST y SOAP.
Esta aplicacin se encargara de gestionar cientos de peticiones concurrentes de otras aplicaciones, en un
sistema de este tipo es crucial que los tiempos de procesamiento, respuesta y porcentaje de error sean
mnimos, una de las decisiones ms importantes es la seleccin del servidor web sobre el cul se va a
ejecutar la aplicacin, en este documento se detalla las pruebas de benchmarking realizadas as cmo los
parmetros de medicin utilizados, esperando que sirva cmo punto de referencia para aplicaciones con
funciones y requerimientos similares.
Objetivos
Evaluar el desempeo y rendimiento que tienen los servidores web Apache, Nginx y Lighttpd
ejecutando peticiones concurrentes a los servicios web disponibles en el sistema BSA, que brinde
un panorama que permita hacer la eleccin correcta del servidor web sobre el cual se va a
ejecutara el sistema en el ambiente de produccin.
Medir el nivel mximo de concurrencia soportado por cara uno de los servidores web que permita
hacer la eleccin de las caractersticas de hardware necesarios para ejecutar este tipo de
aplicaciones.
Entor no De Pr uebas
Descripcin
Para realizacin de estas pruebas, el sistema BSA se instal y configur en cada uno de los servidores
web, utilizando una mquina virtual XEN con sistema operativo Debian GNU/Linux, cada servicio fue
ejecutado de manera nica y sin ninguna otra configuracin que afectara la disponibilidad de memoria.
Configuracin de Software del servidor
Sistema Operativo:
Debian GNU/Linux Squeeze en un mquina virtual con Xen
Servidores HTTP:
Nginx/0.7.65 usando fastcgi.
Apache/2.2.15 usando mod_perl.
Lighttpd/1.4.26 usando fastcgi.
Base de datos:
PostgreSQL 8.4
Framework de desarrollo:
Catalyst 5.8
Configuracin de Hardware
Memoria total del sistema: 256 MB
Configuracin de red
Se asigno a cada uno de los servidores web un puerto y una direccin para ser ejecutados, a continuacin
de muestra al listado de la configuracin de nombres de dominios/puertos utilizados desde la computadora
cliente.
Direccin IP / Puerto
Servidor Web
sandbox.ready2fill.net:8090
Nginx
sandbox.ready2fill.net:80
Apache
sandbox.ready2fill.net:300
Lighttp
Etapa De Pr uebas
La etapa de pruebas se compone de 3 escenarios, en cada uno de ellos se describe las configuraciones
aplicadas y el resultado obtenido, el cul ser analizado en la siguiente seccin del documento, en cada
uno de los escenarios.
Los parmetros de medicin utilizados son:
/services/get/customer_invoice/10148
/services/get/vendor_data/10143
/services/get/customer_data/10221
/services/list/vendors_or_search_by_specific_field
Servidor Nginx
Escenario 1:
Parmetros:
Nmero de usuarios conectados: 2
Nmero de peticiones por usuario: 4
Total de peticiones: 8
Resultados:
Promedio de solicitudes que se pueden atender por segundo: 1.5
Porcentaje de error: 0%
Tiempo de respuesta promedio: 1,6 segundos
Tiempo de respuesta promedio mnimo: 0,5 segundos
Tiempo de respuesta promedio mximo: 1,7 segundos
Escenario 2:
Parmetros:
Nmero de usuarios conectados: 20
Nmero de peticiones por usuario: 4
Total de peticiones: 80
Resultados:
Promedio de solicitudes que se pueden atender por segundo: 1
Porcentaje de error: 11,25%
Tiempo de respuesta promedio: 14.1 segundos
Tiempo de respuesta promedio mnimo: 3.7 segundos
Tiempo de respuesta promedio mximo: 56.2 segundos
Escenario 3:
Parmetros:
Nmero de usuarios conectados: 40
Nmero de peticiones por usuario: 4
Total de peticiones: 160
Resultados:
Promedio de solicitudes que se pueden atender por segundo: 3.4
Porcentaje de error: 8,12%
Tiempo de respuesta promedio: 10.3 segundos
Tiempo de respuesta promedio mnimo: 1.4 segundos
Tiempo de respuesta promedio mximo: 20.1 segundos
Observaciones:
Se observo un ndice de 87.5% de error al ejecutar el servicio de listar clientes, el cul es un
servicio que mayor tiempo de procesamiento genera.
Servidor Lighttpd
Escenario 1:
Parmetros:
Nmero de usuarios conectados: 2
Nmero de peticiones por usuario: 4
Total de peticiones: 8
Resultados:
Promedio de solicitudes que se pueden atender por segundo: 2,7
Porcentaje de error: 0%
Tiempo de respuesta promedio: .7 segundos
Tiempo de respuesta promedio mnimo: 0,5 segundos
Tiempo de respuesta promedio mximo: 0,9 segundos
Escenario 2:
Parmetros:
Nmero de usuarios conectados: 20
Nmero de peticiones por usuario: 4
Total de peticiones: 80
Resultados:
Promedio de solicitudes que se pueden atender por segundo: 3,2
Porcentaje de error: 0%
Tiempo de respuesta promedio: 5,5 segundos
Tiempo de respuesta promedio mnimo: 1,9 segundos
Tiempo de respuesta promedio mximo: 9.8 segundos
Escenario 3:
Parmetros:
Nmero de usuarios conectados: 40
Nmero de peticiones por usuario: 4
Total de peticiones: 160
Resultados:
Promedio de solicitudes que se pueden atender por segundo: 3,2
Porcentaje de error: 0%
Tiempo de respuesta promedio: 10.6 segundos
Tiempo de respuesta promedio mnimo: 1.0 segundos
Tiempo de respuesta promedio mximo: 14.4 segundos
Servidor Apache
Escenario 1:
Parmetros:
Nmero de usuarios conectados: 2
Nmero de peticiones por usuario: 4
Total de peticiones: 8
Resultados:
Porcentaje de error: 25%
Tiempo de respuesta promedio: 0,8 segundos
Tiempo de respuesta promedio mnimo: 0,2 segundos
Tiempo de respuesta promedio mximo: 1,5 segundos
Escenario 2:
Parmetros:
Nmero de usuarios conectados: 20
Nmero de peticiones por usuario: 4
Total de peticiones: 80
Resultados:
Porcentaje de error: 88%
Tiempo de respuesta promedio: 4,6 segundos
Tiempo de respuesta promedio mnimo: 0,5 segundos
Tiempo de respuesta promedio mximo: 16, segundos
Escenario 3:
Parmetros:
Nmero de usuarios conectados: 40
Nmero de peticiones por usuario: 4
Total de peticiones: 160
Resultados: Apache Fallo todas las peticiones.
Resultados
Escenario 1: El servidor Lighttpd obtuvo los mejores tiempos en la prueba de dos usuarios, al
tener un tiempo de respuesta promedio de 0,7 segundos, seguido del de Nginx con 1,3 segundos.
El servidor Apache obtuvo 100% de error en la peticin de listar proveedores.
Escenario 2: Los mejores tiempos de respuesta los obtuvo el servidor Lighttp con 5,5 segundos
de promedio de respuesta con 80 (20 usuarios) peticiones, el servidor Nginx obtuvo cierta
inestabilidad mientras que apache fall todas las peticiones.
Escenario 3: El servidor Nginx obtuvo mejores tiempos de respuesta, sin embargo tuvo un 8,6 %
de peticiones fallidas, el servidor lighttpd aunque su tiempo de respuesta fue un poco mayor acert
en todas la peticiones, el servidor Apache fallo todas las peticiones.
20 Usuarios
0,7
0,8
14,1
5,5
40 Usuarios
Nginx Lighttpd Apache
6,9
7,3 error
8,8
11,6 error
14,5
11,0 error
11,1
12,6 error
10,3
10,6
Conclusin
El mayor problema que se present fue en consumo de memoria, originado por las mltiples o
operaciones que realiza la aplicacin, se observo un alto porcentaje de inestabilidad al ejecutar
BSA en una mquina virtual de 128 MB, por lo que la memoria fue incrementada a 256 MB,
basndonos en los parmetros de medicin y en los resultados obtenidos se obtuvo que el
servidor web con mejor desempeo para este tipo de aplicaciones es Lighttpd y muy cerca
del rendimiento esperado se encuentra Nginx por lo que no se descarta su uso con una
configuracin ms optimizada.