2009-08-05 3 views
1

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

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

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

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

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

Любые рекомендации приветствуются!

Спасибо, Пол

ответ

1

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

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

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

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

+0

Удивительная информация. Спасибо! – gravelpot

0

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