Análisis y pruebas de benchmarking

10

Click here to load reader

Transcript of Análisis y pruebas de benchmarking

Page 1: Análisis y pruebas de benchmarking

Tecnología para Gestionar Tu Negocio

Análisis y pruebas de benchmarking de servicios web en diferentes servidores

HTTP.

Junio 2010

Ready2Fill Services S.C. Av. Lázaro Cárdenas # 709, Sta. María Ixcotel, 71228. Sta. Lucía del Camino, Oaxaca +(52) 951 176 34 39

Page 2: Análisis y pruebas de benchmarking

Contenido

Introducción ...........................................................................................................................3

Objetivos.................................................................................................................................3

Entorno de pruebas ...............................................................................................................4

Descripción.........................................................................................................................4

Configuración de Software del servidor.............................................................................4

Configuración de Hardware................................................................................................4

Configuración 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

Conclusión............................................................................................................................10

Ready2Fill Services S.C. Av. Lázaro Cárdenas # 709, Sta. María Ixcotel, 71228. Sta. Lucía del Camino, Oaxaca +(52) 951 176 34 39

Page 3: Análisis y pruebas de benchmarking

Introducción

Las aplicaciones web actuales y principalmente las aplicaciones de negocios, deben tener la característica

de integración y comunicación 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 aplicación WAM Online

Business Tool; con cualquier otro tipo de aplicaciones que cumpla con los estándares de las tecnologías

REST y SOAP.

Esta aplicación 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

mínimos, una de las decisiones más importantes es la selección del servidor web sobre el cuál se va a

ejecutar la aplicación, en este documento se detalla las pruebas de benchmarking realizadas así cómo los

parámetros de medición utilizados, esperando que sirva cómo punto de referencia para aplicaciones con

funciones y requerimientos similares.

Objetivos

• Evaluar el desempeño 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 elección correcta del servidor web sobre el cual se va a

ejecutara el sistema en el ambiente de producción.

• Medir el nivel máximo de concurrencia soportado por cara uno de los servidores web que permita

hacer la elección de las características de hardware necesarios para ejecutar este tipo de

aplicaciones.

Ready2Fill Services S.C. Av. Lázaro Cárdenas # 709, Sta. María Ixcotel, 71228. Sta. Lucía del Camino, Oaxaca +(52) 951 176 34 39

Page 4: Análisis y pruebas de benchmarking

Entorno De Pruebas

Descripción

Para realización de estas pruebas, el sistema BSA se instaló y configuró en cada uno de los servidores web, utilizando una máquina virtual XEN con sistema operativo Debian GNU/Linux, cada servicio fue ejecutado de manera única y sin ninguna otra configuración que afectara la disponibilidad de memoria.

Configuración de Software del servidor

Sistema Operativo: Debian GNU/Linux Squeeze en un máquina 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

Configuración de Hardware

Memoria total del sistema: 256 MB

Configuración de red

Se asigno a cada uno de los servidores web un puerto y una dirección para ser ejecutados, a continuación de muestra al listado de la configuración de nombres de dominios/puertos utilizados desde la computadora cliente.

Dirección IP / Puerto Servidor Web

sandbox.ready2fill.net:8090 Nginx

sandbox.ready2fill.net:80 Apache

sandbox.ready2fill.net:300 Lighttp

Software utilizado para realizar pruebas de Performance

Apache Jmeter 2.3.4

Ready2Fill Services S.C. Av. Lázaro Cárdenas # 709, Sta. María Ixcotel, 71228. Sta. Lucía del Camino, Oaxaca +(52) 951 176 34 39

Page 5: Análisis y pruebas de benchmarking

Etapa De Pruebas La etapa de pruebas se compone de 3 escenarios, en cada uno de ellos se describe las configuraciones aplicadas y el resultado obtenido, el cuál será analizado en la siguiente sección del documento, en cada uno de los escenarios.

Los parámetros de medición utilizados son:

• Tiempo mínimo de respuesta• Tiempo de respuesta máximo• Tiempo promedio de respuesta• Porcentaje de error.• Nivel de concurrencia.• Consumo de memoria.

Servicios requeridos para todos los escenarios:

• /services/get/customer_invoice/10148 Obtener información de una factura.• /services/get/vendor_data/10143 Obtener información de un proveedor.• /services/get/customer_data/10221 Obtener información de un cliente.• /services/list/vendors_or_search_by_specific_field Listar proveedores.

Servidor Nginx

Escenario 1:

Parámetros:

Número de usuarios conectados: 2Número de peticiones por usuario: 4

Total de peticiones: 8

Resultados:

Promedio de solicitudes que se pueden atender por segundo: 1.5Porcentaje de error: 0%Tiempo de respuesta promedio: 1,6 segundosTiempo de respuesta promedio mínimo: 0,5 segundosTiempo de respuesta promedio máximo: 1,7 segundos

Ready2Fill Services S.C. Av. Lázaro Cárdenas # 709, Sta. María Ixcotel, 71228. Sta. Lucía del Camino, Oaxaca +(52) 951 176 34 39

Page 6: Análisis y pruebas de benchmarking

Escenario 2: Parámetros:

Número de usuarios conectados: 20Número de peticiones por usuario: 4

Total de peticiones: 80

Resultados:

Promedio de solicitudes que se pueden atender por segundo: 1Porcentaje de error: 11,25%Tiempo de respuesta promedio: 14.1 segundosTiempo de respuesta promedio mínimo: 3.7 segundosTiempo de respuesta promedio máximo: 56.2 segundos

Escenario 3: Parámetros: Número de usuarios conectados: 40Número de peticiones por usuario: 4Total de peticiones: 160Resultados:

Promedio de solicitudes que se pueden atender por segundo: 3.4Porcentaje de error: 8,12%Tiempo de respuesta promedio: 10.3 segundosTiempo de respuesta promedio mínimo: 1.4 segundosTiempo de respuesta promedio máximo: 20.1 segundos

Observaciones:

Se observo un índice de 87.5% de error al ejecutar el servicio de listar clientes, el cuál es un servicio que mayor tiempo de procesamiento genera.

Ready2Fill Services S.C. Av. Lázaro Cárdenas # 709, Sta. María Ixcotel, 71228. Sta. Lucía del Camino, Oaxaca +(52) 951 176 34 39

Page 7: Análisis y pruebas de benchmarking

Servidor Lighttpd

Escenario 1:

Parámetros: Número de usuarios conectados: 2Número de peticiones por usuario: 4

Total de peticiones: 8

Resultados: Promedio de solicitudes que se pueden atender por segundo: 2,7Porcentaje de error: 0%Tiempo de respuesta promedio: .7 segundosTiempo de respuesta promedio mínimo: 0,5 segundosTiempo de respuesta promedio máximo: 0,9 segundos

Escenario 2:

Parámetros: Número de usuarios conectados: 20Número de peticiones por usuario: 4

Total de peticiones: 80

Resultados: Promedio de solicitudes que se pueden atender por segundo: 3,2Porcentaje de error: 0%Tiempo de respuesta promedio: 5,5 segundosTiempo de respuesta promedio mínimo: 1,9 segundosTiempo de respuesta promedio máximo: 9.8 segundos

Ready2Fill Services S.C. Av. Lázaro Cárdenas # 709, Sta. María Ixcotel, 71228. Sta. Lucía del Camino, Oaxaca +(52) 951 176 34 39

Page 8: Análisis y pruebas de benchmarking

Escenario 3:

Parámetros: Número de usuarios conectados: 40Número de peticiones por usuario: 4

Total de peticiones: 160

Resultados: Promedio de solicitudes que se pueden atender por segundo: 3,2Porcentaje de error: 0%Tiempo de respuesta promedio: 10.6 segundosTiempo de respuesta promedio mínimo: 1.0 segundosTiempo de respuesta promedio máximo: 14.4 segundos

Servidor Apache

Escenario 1:

Parámetros: Número de usuarios conectados: 2Número de peticiones por usuario: 4

Total de peticiones: 8

Resultados: Porcentaje de error: 25%Tiempo de respuesta promedio: 0,8 segundosTiempo de respuesta promedio mínimo: 0,2 segundosTiempo de respuesta promedio máximo: 1,5 segundos

Ready2Fill Services S.C. Av. Lázaro Cárdenas # 709, Sta. María Ixcotel, 71228. Sta. Lucía del Camino, Oaxaca +(52) 951 176 34 39

Page 9: Análisis y pruebas de benchmarking

Escenario 2:

Parámetros:

Número de usuarios conectados: 20Número de peticiones por usuario: 4

Total de peticiones: 80

Resultados: Porcentaje de error: 88%Tiempo de respuesta promedio: 4,6 segundosTiempo de respuesta promedio mínimo: 0,5 segundosTiempo de respuesta promedio máximo: 16, segundos

Escenario 3:

Parámetros:

Número de usuarios conectados: 40Número de peticiones por usuario: 4

Total de peticiones: 160

Resultados: Apache Fallo todas las peticiones.

Ready2Fill Services S.C. Av. Lázaro Cárdenas # 709, Sta. María Ixcotel, 71228. Sta. Lucía del Camino, Oaxaca +(52) 951 176 34 39

Page 10: Análisis y pruebas de benchmarking

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 petición 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.

Tiempo promedio por peticiones de usuario

Conclusión

El mayor problema que se presentó fue en consumo de memoria, originado por las múltiples ooperaciones que realiza la aplicación, se observo un alto porcentaje de inestabilidad al ejecutar BSA en una máquina virtual de 128 MB, por lo que la memoria fue incrementada a 256 MB, basándonos en los parámetros de medición y en los resultados obtenidos se obtuvo que el servidor web con mejor desempeño 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 configuración más optimizada.

Ready2Fill Services S.C. Av. Lázaro Cárdenas # 709, Sta. María Ixcotel, 71228. Sta. Lucía del Camino, Oaxaca +(52) 951 176 34 39

Servicios2 Usuarios 20 Usuarios 40 Usuarios

Nginx Lighttpd Apache Nginx Lighttpd Apache Nginx Lighttpd ApacheObtener factura de cliente 1,6 0,9 1,5 7,5 6,1 error 6,9 7,3 errorConsultar proveedor 1,6 0,5 0,9 5,7 6,1 error 8,8 11,6 errorListar proveedores 1,5 0,7 error 7,5 4,8 error 14,5 11,0 errorConsultar cliente 0,5 0,7 0,5 35,9 5,1 error 11,1 12,6 error

Promedio 1,3 0,7 0,8 14,1 5,5 10,3 10,6