2009-02-21 8 views
15

Estoy trabajando en un sitio basado en Drupal y veo que hay muchos archivos CSS y js separados. Recorriendo algunos de los códigos, también puedo ver bastantes casos en los que también se utilizan muchas consultas.Escala Drupal

¿Qué técnicas ha intentado para mejorar el rendimiento de Drupal y qué módulos (si existen) utiliza para mejorar el rendimiento de Drupal "de fábrica"?

Respuesta

21

Ir a la página de administración/configuración/rendimiento, activar la agregación de CSS y JS, y el almacenamiento en caché de páginas con una vida útil mínima de 1 minuto, le dará un impulso inmediato en un sitio con mucho tráfico. Si está escribiendo su propio código y haciendo alguna consulta, considere escribir su propio discreto caching for expensive functions. El artículo vinculado cubre Drupal 5, no 6, pero el único cambio en d6 es la eliminación del requisito de serialización y la firma de la función para las funciones cache_set() y cache_get(). (Ambos se señala en los comentarios sobre el artículo)

En los sitios de gran escala también se considera eliminar un servidor memcached en la red: Con el módulo de memcached, se puede omitir por completo la base de datos de Drupal para los datos almacenados en caché. Si tiene grandes cantidades de contenido y la búsqueda es un punto caliente, también puede considerar usar lucene/solr como su indexador de búsqueda en lugar del indexador de búsqueda incorporado de drupal. Es bueno para un indexador integrado, pero no está diseñado para cargas pesadas (cientos o miles de nuevas piezas de contenido por hora, por ejemplo, con una intensa búsqueda facetada). El módulo apache solr puede vincularse con eso.

Si está haciendo un uso intensivo de Views, asegúrese de haber verificado las consultas que genera para los campos no indexados; la clasificación y el filtrado por campos CCK en particular puede ser lento, porque CCK no agrega índices automáticamente más allá de las claves primarias. En D6, obtenga una vista previa de la Vista en la pantalla de administración, copie el texto de la consulta y ejecútelo mediante EXPLAIN en mysql o las herramientas de análisis de consultas que tenga.

Herramientas como YSlow y Firebug también pueden ayudarlo a detectar cosas lentas como archivos de imágenes masivas, JS alojado en servidores remotos, y más.

+1

También agregaría un poco sobre cómo configurar el almacenamiento en caché de bloque, que le permite almacenar contenido en caché incluso para usuarios registrados, ya que el almacenamiento en caché de la página solo afecta a los anónimos. –

5

Drupal 6, listo para usar, proporciona css y agregación javascript --- la mayoría de los archivos css y js se combinarán en un solo archivo (y, por lo tanto, una sola solicitud HTTP), y también se acortarán en espacios en blanco (para reducir el consumo de ancho de banda). Puede habilitar esto en/admin/settings/performance.

También en esa pantalla están los controles para el caché de Drupal (muy efectivo), lo que ayuda a reducir el número de consultas a la base de datos.

Además, debido a que Drupal (y todos los módulos que probablemente haya instalado) tiene una gran cantidad de fuentes PHP, el uso de un código de operación PHP como APC ayuda a disminuir significativamente el tiempo de solicitud.

0

Estoy muy por debajo de la recomendación de Benedict del módulo Boost: solo hará que su sitio web vuele en un servidor compartido, si está configurado correctamente, y no tiene fallas en absoluto.

Active la agregación CSS/JS, active Boost y su sitio puede funcionar muy bien para usuarios anónimos.

Si su sitio se ocupa de usuarios registrados en su mayoría en, vas a tener que hacer mucho más trabajo asegurándose de que las sesiones se almacenan en caché así, y probablemente considerar el uso de memcached y más caché de consulta SQL.

Las mayores ganancias de rendimiento siempre provienen del almacenamiento en caché, pero monitorear y ajustar sus consultas lentas, monitorear y ajustar las configuraciones de Apache y PHP, y ser inteligente con los módulos que usa son muy importantes también.

+0

Estoy trabajando en un Whitepaper de rendimiento de Drupal en mi sitio web, simplemente ofreciéndolo como un buen muro de ideas para mejorar el rendimiento del sitio en general: http://www.lifeisaprayer.com/articles/web-design/2010/drupal-performance-white-paper – geerlingguy

0

Aparte de la memoria caché por defecto de Drupal, hay algunos otro método para aumentar el rendimiento

módulo de Boost es uno de los mejores. Memcache, Barniz (Drupal 7/Pressflow), CDN son los otros métodos que pueden mejorar el rendimiento

0

También vale la pena mencionar el aumento de rendimiento del uso de almacenamiento SSD de calidad. Siempre ha reducido mis tiempos de carga de respuesta inicial en un 30% o más al migrar a SSD (pasé de aproximadamente ~ 450ms a ~ 250ms en mi último proyecto, usando configuraciones idénticas de Apache/Memcache/Cloudfront EC2), sin mencionar cuánto más agradable es administrar un servidor ágil donde cada comando o secuencia de comandos que le arrojas es casi instantáneo. Nunca regresare.