Drupal: ¿relación de los campos CCK y los tipos de contenido con el rendimiento?

StackOverflow https://stackoverflow.com/questions/1230940

  •  22-07-2019
  •  | 
  •  

Pregunta

Estoy ayudando a alguien con una instalación de Drupal 6, y están muy angustiados por el rendimiento del sitio, a pesar de que solo están en la fase de definir los tipos de contenido. Solo cargar la lista de Módulos puede llevar más de 30 segundos, e importar un tipo de contenido llevó cerca de 3 minutos.

Esto está instalado en un gran sistema UNIX compartido, y estoy ejecutando otras instalaciones D6 en el mismo servidor sin problemas reales (algo de lentitud, pero nada tan malo). Pasé algún tiempo esta tarde deshabilitando todos los módulos no centrales en el sitio, y pude reducir el tiempo de carga de la página de la lista de Módulos a aproximadamente 5 segundos. Cuando volví a habilitar grupos de módulos, parecía que el que tuvo el mayor impacto en el rendimiento fue la familia de módulos CCK (un aumento de 15-20 segundos en el tiempo de carga de la página para la lista de Módulos).

Nuevamente, tengo otros sitios en este servidor que también ejecutan CCK (y la mayoría de los otros módulos) y no experimentan nada como esto. La principal diferencia es que este sitio muy lento tiene una tonelada de tipos de contenido y campos CCK definidos: 46 tipos de contenido separados y 162 campos CCK.

Estoy llegando a la conclusión de que existe una conexión directa entre el rendimiento del sitio (al menos en ciertas operaciones que tienen que ver con la creación y edición de tipos de contenido) y la cantidad de tipos de contenido y campos personalizados, pero no he podido determine exactamente cuál es el impacto de estos tipos de contenido y campos, y si hay algo que pueda hacer para mitigar su impacto.

Instalé el módulo Devel y descubrí que la mayor pérdida de rendimiento en la página Módulos está en las consultas que tienen que ver con cache_menu, pero no estoy seguro de si eso está vinculado directamente a la cantidad de tipos de contenido y / o campos.

¡Se agradece cualquier orientación!

Gracias Paul

¿Fue útil?

Solución

Primero: la página de módulos es realmente una bestia perversa, ya que elimina por completo todas las cachés internas de Drupal y las reconstruye para garantizar que los módulos recién instalados tengan los datos más recientes. No es un buen predictor del rendimiento del sitio (ya que generalmente solo tareas administrativas específicas eliminan ese tipo de cachés), aunque es molesto.

Segundo: Importar tipos de contenido TAMBIÉN elimina esas cachés, porque CCK quiere asegurarse de que todo esté actualizado también. Es subóptimo, pero ahí lo tienes.

Finalmente: la cantidad de campos CCK y tipos de contenido que usted TIENE afecta la cantidad de trabajo que se realiza cuando las memorias caché se vuelcan y reconstruyen. CCK extrae toda la información sobre todos los tipos de contenido definidos y sus campos, crea una estructura de datos para describirlos a todos y usa esa versión en caché para referencia posterior. Con cientos de campos y docenas de tipos de contenido, la reconstrucción de ese caché de datos lleva más tiempo, exacerbando los retrasos que está viendo en la página de módulos y al importar nuevos tipos de contenido.

La buena noticia (tal como es) es que este problema en particular no tiene demasiado impacto en el rendimiento general del sitio, solo las acciones administrativas que eliminan esos cachés.

Otros consejos

Esta es la misma respuesta que hice en otra pregunta de Drupal; Si la respuesta de Eaton no resolvió su problema, tal vez debería echar un vistazo al módulo Vistas y la reconstrucción del menú dinámico. Cada vez, el menú se reconstruye, lo que genera consultas de 100 o incluso 1000. Dependiendo de cómo se hacen las uniones, podría terminar con dos combinaciones similares, en las mismas tablas, lo que llevaría a duplicar el número de consultas. Se puede encontrar más información aquí

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top