Este documento resume los resultados de pruebas de estrés realizadas a servidores web y sistemas operativos. Las pruebas mostraron que el servidor IIS tuvo un mejor rendimiento que Apache en Windows, mientras que Cherokee superó a Apache en Linux. Las pruebas al hardware encontraron que el CPU, memoria y disco funcionaron mejor en Linux que en Windows. En general, los sistemas operativos y servidores tuvieron un mejor rendimiento nativamente que en una máquina virtual.
2. PARTE1
Pruebas de Estrés a Servidores Web.
Descripcion General.
La presente practica consiste en utilizar las herramientas de estres sobre Servidores Web en los
distintos Sistemas Operativos, para la siguiente practica se utilizaron las siguientes herramientas.
Hardware.
Athlon AMD X2 2.0GHz, 4GB RAM, 250 HD, 1GB Video Nvidia GeForce 7150.(Maquina
Nativa. )
o Maquina Virtual VmWare Station 7.0
1GB RAM
20GB HD
1 Núcleo arquitectura i386
12MB Video.
Software.
Sistema Operativo Windows 7 Enterprise Edition(Maquina Nativa)
o Fedora Linux 16 (gnome)
Apache Server 2.2
Cherokee 1.2.101
PHP 5.3
o Windows 2008 Server.
Microsoft IIS 7.
Apache Server 2.2
PHP 5.3
Ab (Apache benchmarking) como herramienta de estres.
La Prueba consistio en utililizar el Software Ab, haciendo distintas solicitudes (request ) a los
servidores desde consola Internamente. Los request se fueron aumentando progresivamente.
La mayor concurrencia que se logro dentro de las pruebas de estres fue de 100.
Se analizo el tiempo que se tardaban los servers en responder a estos request, en todos los casos,
los procesadores Virtuales, se saturaban hasta el 100 %.
El análisis se hizo en Entorno Windows/Linux haciendo comparaciones por sistema Operativo y
uno general.
Todos los Servidores Web fueron Estresados con sus instalaciones default que traen, ninguno se
sometió a optimización.
3. Entorno Windows.
El primer Server en estresarse fue el Server Apache 2.2 obteniendo los siguientes Resultados.
Plataforma Servidor Puerto
Windows 2008 Apache Server 2.2 81
Server
Cantidad de request Nivel de concurrencia Tiempo Por Tiempo Total de la
request (ms) prueba.(seconds)
100 1 2.969 0.297
1000 10 3.424 3.424
2000 20 3.204 6.408
10000 100 3.952 39.522
20000 100 4.282 85.646
50000 100 3.234 161.692
Una de las notas fue que este servidor no soporto la concurrencia de 500. El error que marcaba
tenia relación con los sockets que apache permitia abrir.
El Segundo Server en estresarse fue el Microsoft IIS7 obteniendo los siguientes Resultados.
Plataforma Servidor Puerto
Windows 2008 Microsoft IIS 7 80
Server
Cantidad de request Nivel de concurrencia Tiempo Por Tiempo Total de la
request (ms) prueba.(seconds)
100 1 9.063 0.906
1000 10 2.441 2.441
2000 20 4.833 9.666
10000 100 2.712 27.119
20000 100 2.779 55.582
50000 100 3.203 160.126
Una de las notas fue que el servidor de IIS cuando se aumento la concurrencia a 500, si respondía
las solicitudes sin embargo el sistema estaba casi sin funcionar.
Teniendo la información anterior se realizo un grafico de Comparativa entre los dos sistemas
dentro del Entorno Windows.
4. Prueba Stress Web, entorno Windows Server
2008
60000
160.126, 50000
50000 161.692, 50000
Cantidad de Request realizadas
40000
30000 55.582, 20000
Apache Server 2.2
Microsoft IIS 7
20000 85.646, 20000
27.119, 10000
10000 39.522, 10000
9.666, 2000
6.408, 2000
2.441, 1000
0
3.424, 1000
0 50 100 150 200
0.906, 100
0.297, 100 Tiempo Total de la Prueba (segundos)
Podemos Ver que en un Entorno Windows 2008 Server, El servidor Web Microsoft IIS Tiene un
mejor rendimiento ante las solicitudes que se realizaron sobre este.
Sin embargo cuando ya las solicitudes Fueron bastantes en el caso de las 50,000 El servidor
Apache 2.2 y el Servidor IIs7 comenzaban a converger en cuanto a Respuesta.
Por conclusión Tenemos que en un Entorno Windows 2008 Server, un Servidor IIs7 es mucho
Mejor.
5. Entorno Linux.
Cabe mencionar Antes de comenzar con la descripción de la prueba que la distribución Linux
Fedora 16 que se utilizo, con su entorno gnome, no trabajo establemente sobre la maquina virtual,
debido a problemas con el entorno gnome, por lo que los resultados no fueron favorables como se
esperaban.
El primer Server en este entorno a ser estresado fue Apache 2.2 obteniendo los siguientes
Resultados.
Plataforma Servidor Puerto
Fedora Linux 16 Apache Server 2.2 8080
kernel 3.0
Cantidad de request Nivel de concurrencia Tiempo Por Tiempo Total de la
request (ms) prueba.(seconds)
100 1 339.701 33.97
1000 10 192.606 192.606
2000 20 31.651 63.302
10000 100 9.45 94.504
20000 100 12.094 241.876
50000 100 12.702 635.099
Una de las notas sobre este Servidor es su inestabilidad que mostro en este entorno Linux.
Plataforma Servidor Puerto
Fedora Linux 16 Cherokee Server 80
kernel 3.0
Cantidad de request Nivel de concurrencia Tiempo Por Tiempo Total de la
request (ms) prueba.(seconds)
100 1 21.109 2.111
1000 10 9.545 9.545
2000 20 7.489 14.978
10000 100 9.583 95.831
20000 100 10.218 204.363
50000 100 5.507 275.35
Cabe mencionar que el rendimiento de este server se vio bueno, puesto que entre mas crecia las
solicitudes su tiempo ciertas veces decreció en lugar de aumentar.
Teniendo la información anterior se realizo un grafico de Comparativa entre los dos sistemas
dentro del Entorno Fedora Linux.
6. Prueba Stress Web, entorno Fedora Linux 16
60000
50000 275.35, 50000 635.099, 50000
40000
Cantidad de Request.
30000
Apache Server 2.2
204.363, 20000 Cherokee Server
20000 241.876, 20000
95.831, 10000
10000 94.504, 10000
14.978, 2000
9.545, 1000 63.302, 2000
0
2.111, 100 33.97, 100 192.606, 1000
0 100 200 300 400 500 600 700
Tiempo Total de la Prueba (segundos)
Podemos Ver que en un Entorno Fedora Linux, El servidor Cherokee Tiene un mejor rendimiento
ante las solicitudes que se realizaron sobre este.
El rendimiento que Posee el servidor Cherokee se puede observar que crece exponencialmente la
forma en que responde a las solicitudes.
El Servidor Apache en un rango de 0-10000 es intestable, luego su crecimiento es linealmente
proporcional.
En el caso de las 10000 solicitudes los Servidores se vieron Igualados y es el punto de inflexión
donde Cherokee lo supera impresionantemente.
En conclusión Tenemos que en un Entorno Linux Fedora un Servidor Cherokee 1.2 es mejor que un
servidor Apache 2.2
7. Comparativa General.
Después de haber analizado lo que son los dos entornos de los sistemas operativos se realizo una grafica comparativa entre los 4 Servidores
Web.
Pruebas de estress Web server Windows/Linux
60000
160.126, 50000 161.692, 50000
50000 275.35, 50000 635.099, 50000
40000
Cantidad de Request
Windows 2008 Server Apache Server 2.2
30000
Windows 2008 Server Microsoft IIS 7
55.582, 20000 85.646, 20000 Fedora Linux 16 kernel 3.0 Apache Server 2.2
204.363, 20000 Fedora Linux 16 kernel 3.0 Cherokee Server
20000
241.876, 20000
39.522, 10000
27.119, 10000
10000
94.504, 10000 95.831, 10000
0
0 100 200 300 400 500 600 700
Tiempo total de la Prueba(segundos)
8. De la Grafica Anterior Concluimos
El Servidor Windows 2008 Server se comporta mejor en comparación con el Sistema Operativo
Fedora Linux 16, con el hecho que los dos Web Servers montados Trabajaron mejor que el Mejor
de Fedora.
El Servidor Apache 2.2 Trabajo Mejor en el entorno Windows 2008 Server en comparación a su
rendimiento deficiente que presento en el Entorno Linux Fedora 16.
El Servidor Cherokee es el Servidor que tuvo mejor Crecimiento en cuanto a tiempo de respuesta
por solicitudes, teniendo un crecimiento exponencial
El Servidor IIS7 Aunque tuvo una mejora entre las solicitudes de 10,000 a 20,000 este converge y
disminuye su capacidad de respuesta de una manera lineal.
El Servidor Apache 2.2, presenta demasiada inestabilidad ante pocos request, y luego su tiempo
de respuesta tiene una tendencia lineal.
Cuando son menos de 1000 Request todos los Servers tienen una respuesta considerablemente
buena por lo que la elección de cualquier de todos ellos es considerado buena elección, sin
embargo si el crecimiento sucede y se cuenta con los dos entornos mostrados, no se debe de
elegir un Servidor Web sobre Fedora Linux 16.
La Inestabilidad de Fedora Linux 16, debido a problemas con el nuevo Gnome, no produjo los
resultados esperados que se tenían previstos, que el Servidor Cherokee y Apache Superaran el
rendimiento de los Servidores sobre Windows 2008 Server.
9. PARTE2
Pruebas de Estress sobre los Sistemas Operativos.
Descripcion General
La Segunda Parte de la Practica consistió en realizar pruebas de estrés al CPU, Disco Duro,
Memoria y Video de los sistemas operativos utilizados en la parte1.
ENTORNO WINDOWS 2008Server
Para Estressar el CPU se utilizaron las herramientas
Nova Beanch
Cpu bench4.06
CPU
Segund NovaBeanch Estos fueron los resultados obtenidos.
8119895 floating point operations/seconds.
36091683 Integer operation/Second.
261754 MD5 Haches Generated/second.
Según CpuBench tenemos las siguientes graficas que decriben la posición del cpu comparado con
otros.
10. Con 5000 decimales. Para probar el punto flotante del CPU.
Esta grafica muestra lo que es MIPS(Millones de Instrucciones por segundo) Teniendo un resultado
de 246.05. Tiene un buen rendimiento en comparación con las maquinas que propone cpu bench
Mejor que un Pentium 3 de 1GHz.
Memoria RAM
Según Nova Beanch la capacidad que tiene la Arquitectura en cuanto a transmisión de información
hacia la memoria RAM es de: 1620Mb/s
Disco Duro:
Según Nova Beanch la capacidad que tienen la arquitectura de hardware para la transimision hacia
el disco duro es de 14MB/s.
11. VIDEO
En lo que respecta al video las pruebas de Estress fallaron sobre la plataforma virtual, debido a
que es una maquina virtual no tiene instalado ningún plugin para video.
Se realizaron Pruebas con otras herramientas sin embargo no eran ni explicativas ni
proporcionaban información útil sino era puramente grafico como Heavy Load. El cual hacia
pruebas de estrés a la memoria, cpu y disco duro al mismo tiempo, pero sin obtener estadísticas a
partir de lo realizado.
12. ENTORNO LINUX.
Para las pruebas de Estrés.
Se tiene en la salida del comando “cat /proc/cpuinfo”
cat /proc/cpuinfo
processor :0
vendor_id : AuthenticAMD
cpu family : 15
model : 104
model name : AMD Turion(tm) 64 X2 TL-60
stepping :2
cpu MHz : 2000.128
cache size : 512 KB
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level :1
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat pse36 clflush
mmx fxsr sse sse2 syscall nx mmxext fxsr_opt rdtscp lm 3dnowext 3dnow constant_tsc up
tsc_reliable pni cx16 hypervisor lahf_lm extapic 3dnowprefetch
bogomips : 4000.25
clflush size : 64
cache_alignment : 64
address sizes : 40 bits physical, 48 bits virtual
Y se realizaron las pruebas de estress con la herramienta stress
Teniendo los Resultados siguientes.
El comando para estresar con la salida
Stress –c –i –m
-c para las sobrecargas con el cpu
-i para sobrecargas en i/o
-m para sobre cargas –m
13. CPU
Para sobre cargas de cpu
El comando stress –v –c 20000 –n –t 10
Donde 20000 es la cantidad de trabajos que se sobre cargan al cpu lo cual se realizo en 13
segundos. Esto es haciendo llamadas a la función sqrt
Disco duro
Para estresar el disco duro se hicieron llamadas a la función sync() con 20000 trabajos que
acceden al disco duro.
RAM
Para estresar el disco duro se hicieron llamadas con stress
14. Por lo tanto concluimos en cuanto al hardware dentro de cada uno de los Sistemas Operativos
Virtuales en Linux tiene un mejor rendimiento, debido a que en Windows necesita bastantes add-
ons O plugins para que funcione correctamente los dispositivos dentro del Sistema Operativo.