Чи впливають недіагностичні модулі на продуктивність?


91

Чи має модулі Drupal присутні, але не ввімкнено чи впливає на ефективність сайту Drupal?

Інакше кажучи .. Чи може видалення відключених модулів із сайту Drupal позитивно впливати на продуктивність?

Відповіді:


97

Зазвичай ні, це не вплине на продуктивність - за винятком випадків, коли ви переглядаєте сторінку вибору модулів (адміністратор / збірка / модулі або адміністратор / модулі). Відключені модулі не завантажуються в пам'ять і ніколи не виконуються.


24
Незважаючи на це, відключені модулі все ще залишають за собою змінні та таблиці баз даних, щоб модуль можна було знову включити без втрати даних. Якщо ви не плануєте знову використовувати відключений модуль, вам слід видалити модуль через admin / build / module / uninstall в D6 або admin / module / uninstall в D7.
Дейв Рейд

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

62

Так. Це може.

Незважаючи на те, що кажуть інші, є кілька ситуацій, коли продуктивність знизиться.

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

Невикористані модулі не використовують більше пам’яті, ніж під час відновлення системної таблиці. Невикористані модулі не викликають більше або повільніших пошуків у вашій файловій системі, за винятком під час відновлення системної таблиці. Якщо ви перейдете вище X-тисяч модулів, то сама файлова система може спричинити проблеми.


5
Відключені модулі необов’язково не є належним чином видаленими модулями: я можу відключити модуль, щоб уникнути появи його сторінок налаштувань, а не тому, що я хочу його видалити. Наприклад, на Drupal.org Views інтерфейс користувача вмикається лише тоді, коли комусь потрібно редагувати представлення даних, а потім він відключається після того, як буде виконано редагування перегляду.
kiamlaluno

3
Крім того, якщо у вас встановлено devel / admin_menu, у вас є гарний ярлик до "Вимкнути модулі розробника", який вимикає такі речі, як інтерфейс Views, інтерфейс правил, інтерфейс поля тощо, які не потрібні для нормально працюючих виробничих сайтів. Це може заощадити кілька МБ у кожній потоці PHP / Apache на звичайній машині LAMP!
geerlingguy

5
Мені відомо, що не ввімкнутий модуль не одержує відключення модуля, який колись був відключений. Ваш приклад переглядів та подібних модулів дійсно підтверджує мою думку: коли ви вимикаєте view-ui свою локальну таблицю, а таблиця varaables є / засмічена / з ворсом, який завантажується та оцінюється на кожній сторінці. Нещодавно я очистив сайт, де у нас було 5 Мб (!) Та майже 60 МБ (!) Змінних, що залишилися, та невикористаних рядків локалі, залишку від старих і вже не використовуваних модулів. Причиняючи пошук локалів, щоб вони стали повільними запитами і викликали 5 Мб додаткової пам'яті при кожному завантаженні сторінки.
berkes

Якщо я відключив інтерфейс Views Views, це тому, що я все ще хочу його використовувати; це просто те, що я не хочу, щоб це було ввімкнено, коли мені це не потрібно. У такому випадку видалення всіх змінних Drupal для цього модуля матиме негативний ефект від скидання всіх параметрів, які я змінив. Це точно не те, що я хотів би. Не включений модуль - це відключений модуль. Здається, ви плутаєте невстановлений модуль з відключеним модулем, де останній - це модуль, який я відключив, оскільки я його використовую в конкретних ситуаціях, як інтерфейс Views, який дійсно необхідний під час редагування представлення; Мені це не потрібно в інших випадках.
kiamlaluno

2
Коли ви користуєтеся інтерфейсом перегляду, як ви описуєте: вимкнено з можливістю використовувати його за бажанням; це впливає на продуктивність . Це те, що просить ОП. І, мабуть, саме так користуються люди (принаймні, ви це робите). Отже, висновок про відключення модулів може мати вплив на продуктивність; особливо якщо ви вирішите не видаляти їх повністю; і завжди, якщо вони не
видалять

8

З встановленим, я вважаю, ви маєте на увазі папку своїх модулів drupal ("сайти / всі / модулі" або "сайти / tvojeite.com / модулі"), правда?

Якщо так, відключені модулі взагалі не вплинуть на продуктивність, лише коли ви відвідаєте сторінку "адмін / збірка / модулі". Drupal відновлює кеш-пам'ять деяких елементів модуля (як прив'язка_меню ).


7

З мого досвіду, зниження продуктивності від відключених модулів є незначним (і відносно, 4000 відключених модулів можуть зробити щось трохи повільніше, ніж 30 відключених модулів тощо)

Особисто мене просто більше турбує невикористаний (і, мабуть, застарілий) код, який сидить у моїх репо та веб-сайтах, але я аналогічно заповідний як це.


4

Технічно ні і так. Зазвичай відключені модулі не завантажуються в пам'ять, тому вони не впливатимуть на роботу сайту як такого. Але якщо у відключених модулях багато даних у змінних, тоді доцільно їх видалити, щоб пам'ять звільнилася.


3

Видалення коду відключених модулів може не вплинути на сайт.

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

Видалення модуля видалить непотрібні таблиці.

Знову ж таки, продуктивність залежить від кількості встановлених модулів.


3

Відключені модулі, які не видаляються, а фізично видаляються з папок, негативно впливають на продуктивність сайту. У мене було 5 таких модулів, і завдяки цьому було додатково 10 000 дзвінків до функції is_dir (). Я використовував модуль missing_modules (пропущений_модуль) для ідентифікації відсутніх модулів і виправляв проблему в базі даних.


1

Видалення та відключення не вплине на продуктивність.

Але якщо модуль відключений лише тоді, він може мати деякі таблиці, тому це додаткове навантаження на базу даних drupal.

Як було сказано раніше, на сторінці модуля drupal з'явиться певна суттєва проблема. Багато разів ця сторінка не завантажується і займає багато часу, тому що на ній відображаються всі встановлені / видалені модулі.

Тому для подолання цієї ситуації нам слід фізично видалити невикористані модулі з / sites / all / module / drive.


1
"Видалення та відключення не вплине на продуктивність." - у конкретних випадках вони можуть. Особливо виконання дій адміністратора. Не ввімкнено не лише сторінку "модулів", деякі модулі для перекладу чи перегляд коду на модулях. І є незначні речі, такі як продуктивність файлової системи.
Молот

1

Інвалідні модулі не впливають на продуктивність сайту drupal.

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.