Suhosin causante de una penalización de rendimiento en PHP5

Hace unos meses os hablaba de FatMM, un parche para el core de PHP5 diseñado por Brian Shire, ingeniero de Facebook durante más de cuatro años. Dado que teníamos pensado actualizar la versión de PHP de nuestros frontales, me propuse adaptar el parche para la nueva versión, pero no me fue tan bien a la hora de intentar adaptarlo para PHP 5.3.0, por lo que me puse en contacto con Brian que amablemente me mandó un parche adaptado para la nueva versión. Aquí fue donde comenzamos a discutir acerca del rendimiento extra que obteníamos con el parche, ya que él no parecía muy seguro de que se ganase un de un 4% a un 10% de uso de CPU, así como tampoco había tenido tiempo para hacer sus propias pruebas en un escenario limpio (mismo kernel, todos corriendo la misma distribución por el tema de las versiones de las bibliotecas, misma versión de PHP, misma CPU y memoria, mismo peso en el balanceador, etc).

Me hice con cuatro frontales y los preparé con la siguiente configuración:

Servidor 1: FatMM habilitado con 12MB de reserva y Suhosin habilitado en tiempo de compilación.
Servidor 2: FatMM habilitado con 0 MB de reserva y Suhosin habilitado en tiempo de compilación.
Servidor 3: FatMM habilitado con 12 MB de reserva y Suhosin deshabilitado en tiempo de compilación.
Servidor 4: FatMM habilitado con 0 MB de reserva y Suhosin deshabilitado en tiempo de compilación.

El propósito del test era descubrir si era FatMM el que arañaba uso de CPU, o Suhosin el que añadía la penalización de rendimiento. Los resultados fueron:

Servidor 3 y Servidor 4 han tenido el mismo uso de CPU en hora pico. Servidor 1 tuvo mejor rendimiento que Servidor 2 (la diferencia se veía reflejada solamente en el uso de system cpu), pero bastante peor que Servidor 3 y Servidor 4. En resumen, el parche de Suhosin para PHP estaba añadiendo unas penalizaciones de rendimiento bastante apreciables al core de PHP, y la ganancia de CPU que experimentamos gracias al parche de FatMM se debía a que este parche desactiva las protecciones de Suhosin sobre los malloc() que realiza.

Al saber esto y analizar el parche de Suhosin en profundidad (muchas distribuciones lo añaden por defecto) nos dimos cuenta de que realmente, el parche de Suhosin para el core de PHP (que no la extensión para PHP) no nos aporta nada interesante y nos penaliza el rendimiento en los frontales.

1 Response to “Suhosin causante de una penalización de rendimiento en PHP5”


  1. 1 sharek 27 diciembre 2009 a las 10:30

    OFFTOPIC:

    Ya que no te veo en el jabber… FELICIDADES!


Comments are currently closed.



Las opiniones reflejadas en este blog son personales o ni siquiera son opiniones, y bajo ningún concepto representan las estrategias, opiniones o posturas de mi empresa actual, ni de ninguna en las que he trabajado, así como tampoco de ninguno de los clientes o proveedores de todas ellas.
La información se proporciona como está, sin garantías de ninguna clase, y no otorga ningún derecho. Los comentarios pertenecen a sus autores y bajo ningún concepto el autor del blog se hará responsable de los mismos.

Categorías

Archivos


A %d blogueros les gusta esto: