it-swarm-es.com

¿Cómo proceder con las pruebas de rendimiento de MySQL para Drupal?

Tenemos muchos sitios Drupal instalados en nuestro servidor. Algunos de los sitios tienen muchas vistas y bloques configurados. Ocasionalmente, uno de esos Drupal sitio (con muchas vistas y contenido) de repente deja de responder o es muy lento. Pero el resto de los Drupal sitios con menos contenido parecen funcionar bien durante ese tiempo. Tenemos que reiniciar la base de datos MySQL para para que el sitio Drupal no responda a la normalidad. Estábamos pensando en configurar un reinicio periódico de MySQL usando cron.

Esta opción de reinicio periódico no me atrae mucho. Quiero encontrar la causa de este problema. Sospecho que se debe principalmente a MySQL, pero aún así es una suposición.

No tengo experiencia en los problemas de rendimiento del servidor. ¿Cuál es la mejor manera de abordar este problema? ¿Cómo puedo confirmar que se trata de un problema de MySQL y no por otro? Si es un problema de MySQL, ¿qué pasos básicos debo seguir para solucionarlo?

5
Ajinkya Kulkarni

Secundo las recomendaciones de los módulos DBTuner y Devel. También estoy de acuerdo en que debe evitar reiniciar Mysql siempre que sea posible. Construye un montón de cachés en RAM y tendrá que empezar de nuevo si reinicia. Debe asegurarse de que su mysql esté usando al menos my-huge.cnf o mejor. Este hilo en Drupal.org http://drupal.org/node/85768 tiene información sobre cómo ajustar Mysql para un mejor rendimiento. Siempre pruebe sus cambios en my.cnf en un servidor de desarrollo porque los cambios de configuración de Mysql a menudo rompen el servidor sin advertencia ni explicación.

Además, asegúrese de que PHP tenga una buena cantidad de RAM. PHP los retrasos pueden dar la apariencia de un servidor de base de datos lento si solo está mirando el sitio en un navegador web. Quieres que tenga memory_limit = 32M o más (yo usualmente 64-126M). Sin embargo, no quieres que sea demasiado alto porque eso puede comenzar a tener un impacto negativo en el rendimiento de Apache.

También hay un grupo de alto rendimiento aquí http://groups.drupal.org/high-performance . Este es un buen lugar para curiosear.

4
Codeblind

La primera herramienta que se puede usar es Devel - mostrará que se han realizado llamadas largas.
Y hay muchas herramientas para realizar y ajustar mysql en Internet.

4
Nikit

Creo que si alguna vez necesita reiniciar MySQL con regularidad, especialmente programado, entonces hay un problema.

¿Con qué frecuencia ocurre esta falta de respuesta? ¿Tiene acceso SSH a la máquina? ¿Puede acceder al indicador de MySQL y hacer 'mostrar lista de procesos'; ?

Sospecho que es un problema de tabla bloqueada si una consulta tarda mucho tiempo.

3
Christian

Encontré el módulo dbtuner muy útil. Incluso sugiere y proporciona una forma sencilla de indexar campos específicos. Dale un tiro.

2
G.Martin

La próxima vez que esto suceda, haz un SHOW FULL PROCESSLIST en phpmyadmin/mysql. Mostrará qué consultas se están ejecutando; qué tablas están bloqueadas y durante cuántos segundos se ha estado ejecutando la consulta. Una vez que conozca la consulta, es mucho más fácil averiguar qué está mal.

Estoy un poco sesgado, pero dbtuer es una herramienta bastante dulce para encontrar consultas lentas en las vistas. Devel rocas para encontrar todas las consultas lentas.

2
mikeytown2

Si está utilizando la versión 7, algunos consejos de rendimiento pueden ser se encuentran en esta publicación .

2
Tangurena