Czy moduły nieobsługiwane wpływają na wydajność?


91

Czy obecność modułów Drupal, ale nie włączonych, ma jakikolwiek wpływ na wydajność strony Drupal?

Innymi słowy. Czy usunięcie wyłączonych modułów z witryny Drupal miałoby pozytywny wpływ na wydajność?

Odpowiedzi:


97

Zasadniczo nie, nie wpłynie to na wydajność - z wyjątkiem sytuacji, gdy przeglądasz stronę wyboru modułów (admin / build / modules lub admin / modules). Wyłączone moduły nie są ładowane do pamięci i nigdy nie są wykonywane.


24
To powiedziawszy, wyłączone moduły nadal pozostawiają po sobie zmienne i tabele bazy danych, dzięki czemu moduł można ponownie włączyć bez utraty danych. Jeśli nie planujesz ponownie używać wyłączonego modułu, powinieneś odinstalować moduł poprzez admin / build / modules / uninstall w D6 lub admin / modules / uninstall w D7.
Dave Reid,

1
Myślę, że może to być jeden z przykładów modułu, który dodaje kolumnę do tabeli węzłów, drupal.org/project/quickstats, więc sądzę, że jeśli nie odinstalujesz modułu, będzie to oznaczać niepotrzebne zużycie zasobów (może minimalne? ) do innych modułów podczas pobierania informacji o węźle.
cigotete

62

Tak. To może.

Pomimo tego, co mówią inni, istnieje kilka sytuacji, w których wydajność spadnie.

  1. Wyłączone i nieprawidłowo odinstalowane moduły mogą mieć poważny wpływ na wydajność: zmienne dla modułu nie są usuwane i będą ładowane przy każdym żądaniu strony. Ustawienia regionalne dla modułu (w przypadku korzystania z przetłumaczonej witryny) nie są usuwane i powodują obciążenie na już uciążliwej tabeli bazy danych.
  2. Drupal używa tabeli systemowej jako pamięci podręcznej, aby uniknąć wyszukiwań modułów w systemie plików. Im więcej wpisów znajduje się w tej tabeli, tym będzie wolniej. Ten efekt jest raczej niewielki, ponieważ tabela systemowa jest dość dobrze indeksowana. Jednak czyszczenie pamięci podręcznej i odwiedzanie stron administracyjnych powoduje przebudowanie tej tabeli. Przebudowa tabeli z ponad 200 nieużywanymi modułami jest około 25 razy wolniejsza niż bez nieużywanych modułów. Ilość przebudowań tego stołu może być dość wysoka w niektórych dziwnych sytuacjach, podczas rozwoju i tak dalej.

Niewykorzystane moduły nie używają więcej pamięci niż podczas przebudowywania tabeli systemowej. Nieużywane moduły nie powodują więcej lub wolniejszego wyszukiwania w systemie plików, z wyjątkiem podczas przebudowywania tabeli systemowej. Jeśli przekroczysz X-tysięcy modułów, sam system plików może powodować problemy.


5
Wyłączone moduły niekoniecznie nie są poprawnie odinstalowane: mógłbym wyłączyć moduł, aby uniknąć wyświetlania stron ustawień, a nie dlatego, że chcę go odinstalować. Na przykład interfejs użytkownika Widoki Drupal.org jest włączony tylko wtedy, gdy ktoś musi edytować widok, a następnie wyłączany po zakończeniu edycji widoku.
kiamlaluno

3
Dodatkowo, jeśli masz zainstalowane devel / admin_menu, masz ładny skrót do „Wyłącz moduły programistyczne”, który wyłącza takie elementy, jak Interfejs Widoku, Interfejs Reguły, Interfejs Pola itp., Które nie są potrzebne w normalnie działających zakładach produkcyjnych. Może to zaoszczędzić kilka MB w każdym wątku PHP / Apache na normalnej maszynie LAMP!
geerlingguy

5
Wiem, że moduł, który nie został włączony, nie jest tym samym modułem, który kiedyś był wyłączony. Twój przykład poglądów i modułów devel-alike robi udowodnić mój punkt widzenia: kiedy wyłączyć widoki-ui tabelę lokalizacji i tabela varaibles jest / zaśmiecona / z kłaczków, który jest ładowany i ocenianego na każdej stronie. Niedawno wyczyściłem witrynę, w której mieliśmy 5 MB (!) I prawie 60 MB (!) Resztek zmiennych i nieużywanych ciągów ustawień narodowych, resztek ze starych i nieużywanych już modułów. Powoduje, że wyszukiwania lokalizacji stają się wolnymi zapytaniami i powodują 5 MB dodatkowej pamięci przy każdym ładowaniu strony.
berkes

Jeśli wyłączę interfejs Widoku, dzieje się tak, ponieważ nadal chcę go używać; po prostu nie chcę, aby była włączona, gdy jej nie potrzebuję. W takim przypadku usunięcie wszystkich zmiennych Drupal dla tego modułu miałoby negatywny efekt zresetowania wszystkich ustawień, które zmieniłem. To na pewno nie to, czego bym chciał. Nieaktywny moduł to wyłączony moduł. Wygląda na to, że mylisz odinstalowany moduł z wyłączonym modułem, przy czym ten ostatni jest modułem, który wyłączyłem, ponieważ używam go w określonych sytuacjach, takich jak interfejs użytkownika Widoki, który jest naprawdę niezbędny podczas edycji widoku; Nie potrzebuję tego w innych przypadkach.
kiamlaluno

2
Gdy używasz interfejsu widoku, jak opisano: wyłączony z opcją korzystania z niego do woli; to ma wpływ na wydajność . O to prosi OP. I najwyraźniej tak ludzie go używają (przynajmniej ty). Zatem wniosek jest wyłączony moduły mogą mieć wpływ na wydajność; szczególnie jeśli zdecydujesz się nie usuwać ich całkowicie; i zawsze, jeśli nie odinstalują się odpowiednio
berkes

8

Z zainstalowanym, mam na myśli, że masz na myśli folder drupal modułów („sites / all / modules” lub „sites / yoursite.com / modules”), prawda?

Jeśli tak, wyłączone moduły w ogóle nie wpłyną na wydajność, tylko podczas odwiedzania strony „admin / build / modules”. Drupal odbudowuje pamięć podręczną niektórych elementów modułu (jako hook_menu ).


7

Z mojego doświadczenia wynika, że ​​spadek wydajności z wyłączonych modułów jest znikomy (a względnie 4000 wyłączonych modułów może sprawić, że będzie trochę wolniej niż 30 wyłączonych modułów itp.)

Osobiście bardziej martwię się o nieużywany (i prawdopodobnie przestarzały) kod, który znajduje się w moich repozytoriach i katalogach internetowych, ale jestem taki anonimowy.


4

Technicznie nie i tak. Zwykle wyłączone moduły nie ładują się do pamięci, więc nie będą miały wpływu na wydajność witryny jako takiej. Ale jeśli wyłączone moduły zawierają wiele danych w zmiennych, zaleca się ich odinstalowanie, aby zwolnić pamięć.


3

Usunięcie kodu wyłączonych modułów może nie mieć wpływu na witrynę.

Z drugiej strony, jeśli moduł zostanie zainstalowany w pewnym momencie, zapełni on bazę danych kilkoma tabelami. Im więcej modułów zostanie zainstalowanych, tym większa szansa na wpływ na wydajność bazy danych.

Odinstalowanie modułu usunie te niepotrzebne tabele.

Ponownie wydajność zależy od liczby zainstalowanych modułów.


3

Wyłączone moduły, które nie zostały odinstalowane, ale zostały fizycznie usunięte z systemu folderów, miałyby negatywny wpływ na wydajność witryny. Miałem 5 takich modułów i dzięki temu było dodatkowo 10 000 wywołań funkcji is_dir (). Użyłem brakującego modułu (brakujący moduł) do zidentyfikowania brakujących modułów i naprawiłem problem w bazie danych.


1

Odinstalowany i wyłączony nie wpłynie na wydajność.

Ale jeśli moduł jest wyłączony tylko wtedy, może mieć powiązane tabele, co stanowi dodatkowe obciążenie bazy danych drupal.

I jak powiedziano wcześniej, na stronie modułu drupala pojawi się poważny problem z wydajnością. Wiele razy ta strona nie jest ładowana i zajmuje dużo czasu, ponieważ wszystkie moduły, które są zainstalowane / odinstalowane, są tam wyświetlane.

Aby przezwyciężyć tę sytuację, powinniśmy fizycznie usunąć nieużywane moduły z / witryn / wszystkich / modułów / napędu.


1
„Odinstalowany i wyłączony nie wpłynie na wydajność.” - w szczególnych przypadkach mogą. Szczególnie wykonywanie czynności administracyjnych. Nie tylko strona „modułów”, niektóre moduły do ​​tłumaczenia lub przeglądu kodu działają również na modułach, które nie są włączone. Są też drobne rzeczy, takie jak wydajność systemu plików.
Mołot

1

Wyłączone moduły nie wpływają na wydajność strony drupal.

Zaleca się jednak, aby nie pobierać modułów, które nie byłyby przydatne w witrynie.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.