Влияют ли не включенные модули на производительность?


91

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

Другими словами ... Повлияет ли удаление отключенных модулей с сайта Drupal на производительность?

Ответы:


97

Как правило, нет, это не повлияет на производительность, за исключением случаев, когда вы просматриваете страницу выбора модулей (admin / build / modules или admin / modules). Отключенные модули не загружаются в память и никогда не выполняются.


24
При этом отключенные модули по-прежнему оставляют за собой переменные и таблицы базы данных, так что модуль можно повторно включить без потери данных. Если вы не планируете снова использовать отключенный модуль, вам следует удалить модуль через admin / build / modules / uninstall в D6 или admin / modules / uninstall в D7.
Дейв Рид

1
Я предполагаю, что это может быть одним из примеров модуля, который добавляет столбец в таблицу узлов, drupal.org/project/quickstats, поэтому я предполагаю, что если вы не деинсталлируете модуль, это будет представлять излишнее потребление ресурсов (может быть, минимальное? ) к другим модулям при извлечении информации об узле.
сигарета

62

Да. Может.

Несмотря на то, что говорят другие, есть несколько ситуаций, в которых производительность снижается.

  1. Отключенные и неправильно удаленные модули могут серьезно повлиять на производительность: переменные для модуля не удаляются и будут загружаться при каждом запросе страницы. Локали для модуля (в случае, если вы используете переведенный сайт) не удаляются и приводят к накладным расходам в и без того громоздкой таблице базы данных.
  2. Drupal использует системную таблицу в качестве кэширования, чтобы избежать поиска в файловой системе для модулей. Чем больше записей в этой таблице, тем медленнее будет. Этот эффект довольно мал, потому что системная таблица достаточно хорошо проиндексирована. Однако очистка кэша и посещение страниц администратора приводят к перестроению этой таблицы. Восстановление таблицы с 200+ неиспользуемыми модулями происходит примерно в 25 раз медленнее, чем без неиспользуемых модулей. Объем восстановления этой таблицы может быть довольно высоким в некоторых странных ситуациях, во время разработки и так далее.

Неиспользуемые модули не используют больше памяти, чем во время перестройки системной таблицы. Неиспользуемые модули не вызывают больше или медленнее поиска в вашей файловой системе, кроме как при перестройке системной таблицы. Если вы превысите X тысяч модулей, то сама файловая система может вызвать проблемы.


5
Отключенные модули не обязательно являются ненадлежащим образом удаленными модулями: я мог отключить модуль, чтобы избежать появления страниц его настроек, а не потому, что я хочу удалить его. Например, в Drupal.org Views UI включается только тогда, когда кому-то нужно отредактировать представление, а затем отключается после того, как редактирование представления завершено.
kiamlaluno

3
Кроме того, если у вас установлено devel / admin_menu, у вас есть хороший ярлык «Отключить модули разработчика», который отключает такие вещи, как пользовательский интерфейс Views, пользовательский интерфейс Rules, пользовательский интерфейс Field и т. Д., Которые не нужны для нормально работающих производственных сайтов. Это может сэкономить несколько МБ в каждом потоке PHP / Apache на обычном компьютере LAMP!
geerlingguy

5
Я знаю, что не включенный модуль не является модулем, который когда-то был отключен. Ваш пример представлений и модулей, похожих на разработчики , подтверждает мою точку зрения: когда вы отключаете views-ui, ваша таблица локали и таблица varaibles / litter / with lint загружаются и оцениваются на каждой странице. Недавно я очистил сайт, на котором у нас было 5 МБ (!) И почти 60 МБ (!) Оставшихся переменных и неиспользуемых строк локали, оставшихся от старых и более не используемых модулей. В результате поиск по регионам становится медленным и требует 5 МБ дополнительной памяти при каждой загрузке страницы.
Беркес

Если я отключаю пользовательский интерфейс Views, это потому, что я все еще хочу его использовать; просто я не хочу, чтобы он был включен, когда он мне не нужен. В этом случае удаление всех переменных Drupal для этого модуля будет иметь отрицательный эффект сброса всех настроек, которые я изменил. Это не обязательно то, что я хотел бы. Не активированный модуль - это отключенный модуль. Кажется, вы путаете неустановленный модуль с отключенным модулем, где последний является модулем, который я отключил, потому что я использую его в определенных ситуациях, таких как пользовательский интерфейс Views, который действительно необходим при редактировании представления; Мне это не нужно в других случаях.
kiamlaluno

2
При использовании пользовательского интерфейса представлений, как вы описали: отключено с возможностью использовать его по желанию; это влияет на производительность . Это то, что просит ОП. И, видимо, именно так люди его используют (по крайней мере, вы). Итак, вывод о том, что отключенные модули могут оказывать влияние на производительность; особенно если вы решите не удалять их полностью; и всегда, если они не
удаляют

8

С установленным, я полагаю, вы имеете в виду в своей папке drupal modules ("sites / all / modules" или "sites / yoursite.com / modules"), верно?

Если это так, отключенные модули не влияют на производительность вообще, только когда вы заходите на страницу «admin / build / modules». Drupal перестраивает кеш некоторых элементов модуля (как hook_menu ).


7

Исходя из моего опыта, снижение производительности от отключенных модулей незначительно (и, соответственно, 4000 отключенных модулей могут сделать вещи немного медленнее, чем 30 отключенных модулей и т. Д.)

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


4

Технически нет и да. Обычно отключенные модули не загружаются в память, поэтому они не влияют на производительность сайта как такового. Но если в отключенных модулях много данных в переменных, то желательно удалить их, чтобы освободить память.


3

Удаление кода отключенных модулей может не повлиять на работу сайта.

Опять же, если вы в какой-то момент установили модуль, он заполнит базу данных несколькими таблицами. Таким образом, чем больше модулей вы устанавливаете, тем больше шансов повлиять на производительность базы данных.

Удаление модуля удалит эти ненужные таблицы.

Опять же, производительность зависит от количества установленных модулей.


3

Отключенные модули, которые не удалены, но физически удалены из системы папок, могут негативно повлиять на производительность сайта. У меня было 5 таких модулей, и из-за этого было дополнительно 10000 вызовов функции is_dir (). Я использовал модуль missing_modules (missing_module), чтобы определить недостающие модули и исправил проблему в базе данных.


1

Удаление и отключение не влияют на производительность.

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

И, как было сказано ранее, на странице модуля drupal будет существенная проблема с производительностью. Часто эта страница не загружается и занимает много времени, потому что там отображаются все модули, которые установлены / удалены.

Поэтому для преодоления этой ситуации мы должны физически удалить неиспользуемые модули из / sites / all / modules / drive.


1
«Удаление и отключение не влияют на производительность». - в определенных случаях они могут. Особенно выполнение действий администратора. Не только страница «Модули», некоторые модули для перевода или проверки кода также работают с модулями, которые не включены. И есть такие мелочи, как производительность файловой системы.
Молот

1

Отключенные модули не влияют на производительность сайта drupal.

Но рекомендуется не загружать модули, которые были бы бесполезны для вашего сайта.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.