Niezoptymalizowana witryna Drupal 7 z 2 GB pamięci RAM może zadowalająco obsłużyć około 20-25 żądań na sekundę. Jeśli chcesz wyjść poza to, strona będzie wymagała drobnych poprawek. To, co poprawisz, zależy od tego, czy większość użytkowników witryny jest anonimowa lub uwierzytelniona. Oto najważniejsze rzeczy, które możesz zrobić, aby poprawić wydajność:
Witryna obsługuje głównie anonimowych użytkowników:
1) Zdecydowanie zainstaluj i skonfiguruj APC, pamięć podręczną i pamięć podręczną.
2) Umieść serwer proxy Varnish przed serwerem WWW. Instalacja i konfiguracja zajmuje około 30 minut, ale znacznie skróci czas ładowania strony. W rzeczywistości Varnish może obsłużyć około 300 żądań na sekundę na maszynie o pojemności 2 GB, jeśli wszystkie strony są buforowane. Użyj modułu Wygasania, aby wygasać tylko wybrane strony dotyczące aktualizacji / usuwania treści.
3) Użyj zaawansowanego modułu agregacji CSS / JS, aby agregować pliki CSS i JS. Spróbuj przenieść wszystkie pliki JS na dół strony. Pamiętaj jednak, że może to uszkodzić Twoją witrynę, więc po dokładnym przetestowaniu zaimplementuj to na produkcji. Eksperymentuj także z wprowadzaniem krytycznego CSS. Z mojego doświadczenia wynika, że skróci to czas ładowania strony o około pół sekundy.
4) Obrazy CSS / JS / powinny mieć nagłówek o dalekiej przyszłości. Zapewni to, że przeglądarki nie będą żądać ciągle tego samego obrazu CSS / JS /.
5) Upewnij się, że serwer WWW obsługuje skompresowane strony / CSS / JS.
Po wykonaniu powyższych 5 kroków serwer 2 GB pamięci RAM powinien być w stanie dość łatwo obsłużyć 50 żądań na sekundę.
Witryna obsługuje głównie uwierzytelnionych użytkowników:
Optymalizacja takiej strony jest bardziej złożona. Takie strony należą do jednej z dwóch podkategorii do celów optymalizacji:
(a) Większość stron w witrynie jest identyczna, z wyjątkiem 1 lub 2 bloków zawierających informacje specyficzne dla użytkownika. Na przykład strona Drupal Commerce.
(b) Większość stron jest całkowicie dostosowana do użytkownika. Na przykład strona Drupal Commons.
Jeśli Twoja witryna należy do kategorii (a), zastosuj większość technik, które omówiliśmy dla witryny obsługującej głównie anonimowych użytkowników. Jedyną różnicą jest to, że w przypadku stron nieadministracyjnych Varnish będzie musiał usunąć plik cookie SESSION z nagłówka i obsługiwać strony z pamięci podręcznej. Użyj modułu AJAX Block do serwerów bloków z informacjami specyficznymi dla użytkownika za pomocą AJAX. W ten sposób większość strony zostanie wyświetlona bardzo szybko przy użyciu Varnish, a następnie informacje specyficzne dla użytkownika będą wyświetlane przez AJAX.
Jeśli Twoja witryna należy do kategorii (b), użyj modułu Authcache. Wolę nie używać go tak często, jak to możliwe, ponieważ wymaga sporo konfiguracji i konserwacji. Ale działa naprawdę dobrze. Nie będzie tak szybki jak użycie Lakieru, ale będzie w stanie obsłużyć 50 żądań na sekundę, których szukasz.
Jeśli chcesz wyjść poza to, co tutaj omówiliśmy, zapoznaj się z listą kontrolną optymalizacji wydajności Drupal . Ujawnienie: Jest napisane przeze mnie. Przytacza wyczerpującą listę rzeczy, które możesz zrobić, aby Twoja strona Drupal płonęła szybko.