Drupal → Влияние количества модулей на производительность

30.01.2010

Решил проверить, как модули, установленные на этом блоге, влияют на производительность Drupal.

Вооружившись утилитой ab из состава Apache 2.2, провел серию тестов. Отключая модуль за модулем, записывал число запросов, которое может обработать Drupal за одну секунду.

Ось Y — это число запросов в секунду (Requests per second).

Пункт "Удаление всех модулей" — означает что модули были деинсталлированы на странице admin/build/modules/uninstall.

Пункт "-сниппет Разделы" — отключён блок для вывода списка разделов.

Пункт "-сниппет Последние комментарии" — отключён блок для вывода списка последних комментариев.

Видно, что основные модули создающие нагрузку, это дефолтные — Search, Taxonomy, Comment, Locale и Menu. Так же заметно, что друпал начинает задыхаться с числом установленных модулей более 30.

На сервере установлен eAccelerator. В Drupal отключено кэширование.

Написанное актуально для
Drupal 6.15, eAccelerator 0.9.5.3
Похожие записи

Комментарии

Гость
17.03.2010, 15:28

А у меня 200 модулей. Дохлый совсем Друпаль!!!

приинклудить 200 файлов это любая cms-ка загнётся)

Кажись в D7 файлы с кодом подключаются только если используется их код.
Эта мера должна снять зависимость производительности от количества модулей.

к сожалению всё осталось по прежнему — грузятся все .module файлы включённых модулей. для проверки можно создать тестовый модуль с единственной строчкой:

<?php watchdog('test', 'Модуль загружен', null, WATCHDOG_DEBUG); ?>

и посмотреть журнал (admin/reports/dblog)

Петров Николай
10.08.2011, 17:17

На последнем проекте отключил модуль "menu", и дискомфорта не испытываю.
Локаль не включаю уже на трех проектах, пока обхожусь без ущерба для функциональности.

По сути говоря - для чего нужен модуль меню?
Самое главное - для того чтобы из админки (веб-интерфейса) юзверерь (админ или модатор) мог что-то поменять.

Если можно обойтись без веб-интерфейса - то лучше обойтись без него. Можно сделать меню на более низком уровне, чтобы оно вообще не грузило базу, процессор и не жрало память. Да, меню работает с пермишенсами, ну и что? Насколько часто нужно ограничить пункты меню в зависимости от роли? У меня совсем не часто, кроме того в API есть-же функции, проверяющие права доступа.

Гость
10.10.2012, 17:29

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

Добавить комментарий