Pautas de carácter general para la mejora de rendimiento

LIBP-0135 (Libro de pautas)

Se debe hacer uso de las técnicas disponibles para mejorar el rendimiento de sitios web basados en Drupal.

Pautas

TítuloCarácter
Hacer uso del Page CachingObligatoria
Poda de la tabla de sesionesObligatoria
Configurar correctamente el módulo ThrottleObligatoria

Hacer uso del Page Caching

Es recomendable habilitar el cacheado de las páginas para minimizar el tiempo dedicado a las consultas de los usuarios anónimos.

Drupal ha incorporado un manera de reducir la carga en la base de datos almacenando y enviando comprimidas las páginas cacheadas solicitadas por usuarios anónimos. Al permitir el cacheado, se reduce de manera efectiva las páginas para una consulta de base de datos única en lugar de las consultas de muchos que podrían ejecutarse de otra manera. El almacenamiento en caché de Drupal está desactivado por defecto y se puede configurar. Es recomendable habilitarlo.

Poda de la tabla de sesiones

Es necesario controlar la tabla de sesiones de usuario. Para ello es recomendable hacer un buen uso del recolector de sesiones que le permita eliminar sesiones antiguas y mantener un tamaño adecuado de la tabla.

Drupal almacena las sesiones de usuario en una base de datos. Esto facilita el mantenimiento del sistema en múltiples equipos pero sobrecarga el manejo de la base de datos con información sobre las sesiones de usuario. Si un site tiene miles de visitas diarias, esta tabla crece de forma significativa. Es recomendable realizar podas de la misma para que su manejo sea mas eficiente en términos de rendimiento.

PHP le da el control de cómo podar las entradas de usuario antiguas. En la configuración de Drupal puede encontrarse algo como esto:

ini_set('session.gc_maxlifetime', 200000); // 55 hours (in seconds)

Esto indica que el recolector de basura comienza a trabajar cada 55 horas, lo que indica que si un usuario no se ha logado en ese tiempo, su sesión es eliminada. Si su tabla de sesiones crece desmesuradamente, es necesario que realice podas con una frecuencia mayor, así que es recomendable que reduzca el tiempo para la aparición del recolector. Un ejemplo sería el siguiente:

ini_set('session.gc_maxlifetime', 86400); // 24 hours (in seconds)
ini_set('session.cache_expire', 1440); // 24 hours (in minutes)

Que ajusta session.gc_maxlifetime, a 24 horas y además ajusta también el tiempo de expiración de la cache al mismo tiempo.

Configurar correctamente el módulo Throttle

Drupal incluye un módulo llamado Throttle como parte de la distribución base. Este módulo realiza un muestreo del site y controla el funcionamiento del mismo mediante unos umbrales definidos por el administrador. Si el muestreo indica que el umbral establecido por el administrador se ha alcanzado se deniega el servicio de la funcionalidad. Es una buena idea para activar este módulo al configurar un sitio.