EDYCJA: Źle odczytałem oryginalny post. 168 modułów to dużo, a od 300 do 700 ms zapytań SQL jest ogromne . Im więcej modułów użyjesz, tym więcej zapytań znajdą się, gdy tylko moduły zrobią.
Używaj agresywnego buforowania, póki możesz, buforuj wszystko, jeśli to nie wystarczy, spróbuj odwrócić bufor proxy. Używanie CDN do plików może znacznie poprawić całość. Odwrotna pamięć podręczna proxy może również pomóc, usuwając niektóre uwierzytelniające pliki cookie podczas odwiedzania stron, które jej nie potrzebują (wówczas rdzeń będzie uważał, że użytkownik jest anonimowy dla tych danych i zmaksymalizuje buforowanie).
Dynamika rdzenia Drupala spowalnia cały świt, gdy tylko zbyt wiele modułów oddziałuje jednocześnie.
Powiedziałbym na przykład, że jeśli użyjesz wielu modułów, które ładują dane w czasie hook_node_load () zamiast używać pól, spowoduje to wiele zapytań, podczas gdy użycie pola zapewniłoby wydajność buforowania.
Renderowanie może również zająć dużo czasu, drupal_render () (kiedyś wywoływany interfejs API renderowania) to niezły kawałek API (naprawdę przydatny), ale także trochę powolny. Przejście na PDO (D7) i pełne DBTNG (co jest świetne, nawiasem mówiąc) również dodaje niezauważalne opóźnienie.
To powiedziawszy, rdzeń sam w sobie jest dość szybki (ale wykonuje zbyt wiele zapytań SQL, nawet przy prawie niczego nie zainstalowanym), źle zakodowane moduły często stanowią wąskie gardło.
APC może podzielić czas wykonania na 2 lub 3, w zależności od uruchomionego kodu. jeśli dobrze go skonfigurujesz (włączysz wszystkie optymalizacje APC, oficjalna instrukcja APC jest dobrze napisana i poprowadzi cię).
Jeśli używasz wolnego systemu plików (sieciowego systemu plików lub wolnego dysku twardego), może to oznaczać widoczny wpływ na czas wykonywania. Drupal składa się z wielu małych plików, co zmusza PHP do wykonywania operacji wejścia / wyjścia na FS za każdym razem, gdy ładuje jeden z nich (APC również bardzo w tym pomaga).
Błędnie skonfigurowany DBMS może być również brzydkim wąskim gardłem, jeśli używasz MySQL, pomyśl o dostrajaniu. Jeśli korzystasz z hostingu współdzielonego, jeśli nie jest on specyficzny dla Drupala (lub gotowy), DBMS i stos PHP prawdopodobnie będą źle skonfigurowane lub nie dostrojone, co może prowadzić do naprawdę wolnych stron.
Nie zapomnij aktywować wszystkich pamięci podręcznych. Jeśli Twoja witryna nie jest uwierzytelniona zorientowana na użytkownika, aktywuj agresywne buforowanie strony (to naprawdę niesamowite).
Im więcej będziesz mieć bloków, tym więcej pełnych stron będzie powolnych, bloki modułów Widoku będą wąskim gardłem (w zależności od używanych wtyczek Widoku blok OG może być prawdziwym bólem), jeśli nie ograniczysz ich widoczności na stronie lub z niestandardowym kodem PHP (każdy inny blok również zawsze ustawia widoczność bloku ręcznie, bardzo pomaga ramie, unikając próby renderowania pustych bloków).
Unikaj modułów korzystających z hook_init (), hook_init () jest uruchamiany na każdej stronie, nawet jeśli dostajesz 403 lub 404, co spowalnia wszystko (nawet spowalnia czas generowania obrazu w stylu imagecache i błędy 404 na plikach byłyby świt powoli, aby powiedzieć, że plik nie istnieje).