xandeadx.ru Блог музицирующего веб-девелопера

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

Опубликовано в

Решил проверить, как модули, установленные на этом блоге, влияют на производительность 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
Похожие записи

Комментарии RSS

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

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

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

надо проверить

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

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

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

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

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

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

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

Оставить комментарий

Содержимое этого поля является приватным и не будет отображаться публично. Если у вас есть аккаунт в Gravatar, привязанный к этому e-mail адресу, то он будет использован для отображения аватара.
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Доступные HTML теги: <a> <i> <b> <strong> <code> <ul> <ol> <li> <blockquote> <em> <s>
  • Строки и параграфы переносятся автоматически.
  • Подсветка кода осуществляется с помощью тегов: <code>, <css>, <html>, <ini>, <javascript>, <sql>, <php>. Поддерживаемые стили выделения кода: <foo>, [foo].

Подробнее о форматировании