Archivo
Archivo
-
-
-
-
-
-
-
-
-
-
- Configurar Firewall para permitir el acceso a SQL ...
- Opciones de bases de datos en SQL Server
- Capturar click derecho con jquery
- Marcador JPEG desconocido o no válido
- Actualizar PHP, Apache y MySQL en CentOS
- Comandos útiles en Linux
- Bug con el plugin de jquery WYSIWYG
- Benchmark Apache y MySQL en CentOS
- Problemas en el acceso remoto a SQL Server
- Eliminar una conexión de unidad de red
- Restaurar una base de datos en Sql Server
-
-
Etiquetas
Etiquetas
Entradas populares de este blog
Imprimir un texto con echo en PHP
PHP Non-Thread Safe vs Thread Safe
Benchmark Apache y MySQL en CentOS
- Obtener enlace
- X
- Correo electrónico
- Otras aplicaciones
Decir que este post es un benchmark en toda regla es muy ambicioso, lo que voy a hacer es compartir los datos que he obtenido en mi caso particular que tal vez puedan ser aplicados a otros casos en los cuales no creo que difieran mucho los resultados globales.
Para los que no estén familiarizados con el tema, un benchmark no es más que una comparativa, en este caso será medir el rendimiento de Apache y MySQL luego de una actualización de versiones.
Servidor de pruebas de carga:
- Sistema Operativo: CentOS 5.5 (Final)
- Versión Núcleo de Linux: 2.6.18-194.17.4.el5
- Versión GCC: 4.1.2 20080704 (Red Hat 4.1.2-48)
- CPU: 4 x Six-Core AMD Opteron(tm) Processor 2423 HE 2009 MHZ
- RAM: 5 GB
Versiones y programas a comparar:
- Apache 2.2.3 vs. 2.2.8
- PHP 5.2.10 vs 5.3.5
- MySQL 5.0.64 vs 5.5.8
En el siguiente gráfico se muestra el consumo de CPU durante una semana, la línea roja significa el momento de la actualización:
Según se puede ver no hay cambios significativos en el rendimiento general de la máquina, luego veremos el por qué. En la siguiente gráfica veremos el consumo total de RAM también en ese mismo intervalo de tiempo y con el mismo resultado aparente, la línea azul es el momento de la actualización:
Hasta ahora no se notan globalmente cambios en el rendimiento general de la máquina, veamos rendimientos concretos.
Nota: el momento de la actualización es el espacio en blanco en todos los gráficos siguientes.
Comparativa de carga de MySQL entre las versiones 5.0.64 y la 5.5.8
El siguiente gráfico muestra la comparativa del rendimiento de la CPU entre estas versiones de MySQL:
Ahora veamos el uso de la memoria RAM
Conclusiones: Es notable el descenso del consumo de la CPU en MySQL 5.5.8 pero al coste de un incremento también notable y en proporción de la memoria RAM. Si tenemos en cuenta que aumentar la CPU en cualquier hosting es mucho más caro que aumentar la RAM es rentable actualizar MySQL a versiones actuales donde se ha optimizado su uso de la CPU a riesgo de consumir algo más de memoria RAM.
Comparativa de carga de Apache (httpd) entre las versiones 2.2.3.y la 2.2.8 con PHP 5.2.10 a la 5.3.5
Veamos el consumo de CPU
Y ahora el consumo de memoria RAM de apache y php
Conclusiones: Según podemos observar y pese a ser la actualización de apache una actualización menor (2.2.3 a la 2.2.8) observamos un incremento considerable tanto en la RAM como en el consumo de la CPU, con estos datos previos se podría suponer que PHP 5.3.5 es menos óptimo que PHP 5.2.10 lo cual es un grave error. Entonces ¿qué es lo que falla en mi análisis?
La respuesta es muy simple y parte del motivo de la actualización del sistema, el aumento considerable del número de visitantes, llegando incluso a ralentizar el servidor y las peticiones httpd pues el servidor MySQL no podía procesar todas las peticiones y cargaba en exceso a la CPU del sistema. Según hemos visto en los gráficos anteriores el consumo de recursos como media general ha subido pero esto se debe al aumento de visitantes, esto es lógico, antes un visitante no podía entrar por estar saturada la CPU con peticiones de MySQL y ahora al optimizarse su consumo de CPU con la versión 5.5.8 se permite la entrada de peticiones de un mayor número de usuarios y con ello el aumento del consumo de recursos de apache y PHP.
Veamos la gráfica de visitantes, el momento de la actualización es la línea roja:
Las conclusiones finales de esta comparativa o benchmark a las que he llegado son las siguientes:
- MySQL se ha optimizado mucho en las versiones 5.5 para garantizar el mínimo consumo de CPU con un ligero aumento de consumo de RAM, más barata y más fácil de aumentar en cualquier hosting online donde se tenga un servidor cloud o dedicado.
- Apache + PHP consumen mucha menos CPU que MySQL pero a su vez consume mucha más memoria RAM y lógicamente esto es directamente proporcional al número de usuarios.
- No hay mejoras de rendimiento significativas entre PHP 5.2.10 y PHP 5.5.3
- No existen tampoco mejoras de rendimiento notables entre Apache 2.2.3 y apache 2.2.8 lo cuál es lógico teniendo en cuenta que es una actualización menor.
¿Y en vuestros casos?
Comentarios
Saludos.
JM