Drupal - Связь полей CCK и типов контента с производительностью?

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

  •  22-07-2019
  •  | 
  •  

Вопрос

Я помогаю кое-кому с установкой Drupal 6, и они очень обеспокоены производительностью сайта, хотя находятся только на этапе определения типов контента.Простая загрузка списка модулей может занять более 30 секунд, а импорт типа контента занял около 3 минут.

Это установлено в большой общей системе UNIX, и я запускаю другие установки D6 на том же сервере без каких-либо реальных проблем (некоторая медлительность, но ничего настолько плохого).Сегодня днем я потратил некоторое время на отключение всех непрофильных модулей на сайте и смог сократить время загрузки страницы списка модулей примерно до 5 секунд.Когда я повторно включил группы модулей, оказалось, что наибольшее снижение производительности было вызвано семейством модулей CCK (увеличение времени загрузки страницы для списка модулей на 15-20 секунд).

Опять же, у меня есть другие сайты на этом сервере, которые также используют CCK (и большинство тех же других модулей) и не испытывают ничего подобного.Основное отличие заключается в том, что на этом очень медленном сайте определено множество типов контента и CCK-полей - 46 отдельных типов контента и 162 CCK-поля.

Я прихожу к выводу, что существует прямая связь между производительностью сайта (по крайней мере, в определенных операциях, связанных с созданием и редактированием типов контента) и количеством типов контента и пользовательских полей, но я не смог точно определить, каково влияние этих типов контента и полей, и можно ли что-нибудь сделать, чтобы смягчить их влияние.

Я установил модуль Devel и обнаружил, что наибольшая потеря производительности на странице Модулей связана с запросами, связанными с cache_menu , но я не уверен, связано ли это напрямую с количеством типов контента и / или полей.

Любое руководство приветствуется!

Спасибо, Пол

Это было полезно?

Решение

Во - первых:Страница модулей действительно является злым чудовищем, поскольку она полностью очищает все внутренние кэши Drupal и перестраивает их, чтобы гарантировать, что свежеустановленные модули имеют самые последние данные.Это не очень хороший показатель производительности сайта (поскольку обычно только конкретные административные задачи очищают такие типы кэшей), хотя и раздражает.

Второй:Импорт типов контента ТАКЖЕ очищает эти кэши, потому что CCK также хочет убедиться, что все обновлено.Это неоптимально, но так оно и есть.

Наконец - то:Количество имеющихся у вас полей CCK и типов контента влияет на объем выполняемой работы при очистке и перестроении кэшей.CCK извлекает всю информацию обо всех определенных типах контента и их полях, создает структуру данных для их описания и использует эту кэшированную версию для последующего использования.С сотнями полей и десятками типов контента восстановление этого кэша данных занимает больше времени, усугубляя задержки, которые вы видите на странице модулей и при импорте новых типов контента.

Хорошей новостью (такой, какая она есть) является то, что эта конкретная проблема не оказывает слишком большого влияния на общую производительность сайта, просто административные действия, которые очищают эти кэши.

Другие советы

Это тот же ответ, который я дал на другой вопрос Drupal;если ответ Итона не решил вашу проблему, возможно, вам следует взглянуть на модуль Views и динамическую перестройку меню.Каждый раз меню перестраивается, что приводит к появлению 100 или даже 1000 запросов.В зависимости от того, как выполняются соединения, в итоге вы можете получить два похожих соединения для одних и тех же таблиц, что приведет к удвоению количества запросов.Более подробную информацию можно найти здесь

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top