Drupal rozwija się szybko, ale wydajność jest tak słaba. Trudno jest osiągnąć 50 żądań na sekundę.
Na prostej stronie internetowej jest tyle zapytań SQL. Jeśli przetestujesz czas żądania formularza przesłanego na Drupal.org, jego ukończenie zawsze zajmie kilka sekund.
Jak poprawić szybkość swojej strony internetowej?
7
6
performance
Bruce Dou
źródło
źródło
Odpowiedzi:
Buforowanie, buforowanie i buforowanie.
Kilka sugestii, które wcześniej zadałem w związku z podobnym pytaniem
źródło
Są to notatki z moich doświadczeń i mogą różnić się od doświadczeń innych. Używam głównie stosu LAMP i rozważałem to samo w swoich sugestiach.
Kciukowe zasady dotyczące buforowania, które zazwyczaj stosuję.
Popraw wydajność strony Drupal (w kolejności rosnącej złożoności)
Aktualizuj rdzeń, aktualizuj moduł i motywy. Tak, to ma znaczenie.
Zainstaluj APC na swoim serwerze. (Przeniesiony na górę na podstawie sugestii Letharion)
Buforowanie stron: admin / config / development / performance Różnica między minimalnym czasem życia bufora a wygasaniem stron buforowanych
Używaj arkuszy sprite - https://www.drupal.org/project/spritesheets
Ustaw wartość minimalnego czasu życia pamięci podręcznej na wyższą liczbę i użyj modułów czyszczących pamięć podręczną, aby wyczyścić pamięci podręczne dla określonych stron - Ilekroć edytuję / aktualizuję węzeł, wszystkie pamięci podręczne stron dla anonimowego użytkownika są tracone
źródło
Moduł Boost jest również bardzo przydatny, tworzy statyczne pamięci podręczne plików ze stron internetowych. Dotyczy to głównie witryn o dużym ruchu anonimowym.
źródło
Warto wspomnieć, że jeśli używasz sterownika bazy danych SQLIte, może być konieczne wyłączenie synchronizacji dysku.
W niektórych konfiguracjach serwerów znacznie poprawi to wydajność.
źródło
Sekret wydajności Drupala polega na buforowaniu i przestrzeganiu dobrych praktyk. Propozycje:
Back-end Drupal
Interfejs Drupal
defer
lubasync
atrybuty.PHP
Baza danych
serwer
Witryny o dużym ruchu
Jeśli spodziewasz się dużego obciążenia witryny, użyj Lakieru. Rozważ także użycie CDN.
Przeczytaj więcej na: Doświadczenie w świecie rzeczywistym w skalowaniu i dostrajaniu wydajności
Dalsze zasoby:
źródło
Istnieje książka o nazwie High Performance Drupal, która zawiera najlepsze praktyki, przykłady i szczegółowe wyjaśnienia dotyczące rozwiązywania wielu problemów z wydajnością i skalowalnością. Dowiesz się, jak stosować techniki kodowania i infrastruktury do elementów wewnętrznych Drupal, wydajności aplikacji, baz danych, serwerów WWW i analizy wydajności.
W artykule Wydajność i skalowalność w Drupal 7 można znaleźć przykłady dotyczące Drupal 6 i Drupal 7 oraz następującą listę:
źródło
Wprowadzono wiele poprawek, aby zoptymalizować wydajność witryny Drupal - ale nie wszystkie są konieczne. Musimy rozejrzeć się za pewnymi alternatywami i technikami, które doprowadziłyby do zoptymalizowania platformy Drupal. Pamięć podręczna, tak, jest to sposób na zoptymalizowanie witryny za pomocą różnych środków, ale niektóre dodatkowe dodatki i porady mogą zwiększyć i ulepszyć witrynę bez konieczności przeprowadzania bezproblemowych procesów.
Niedawno opublikowaliśmy podobny artykuł do naszej strony internetowej, który moim zdaniem może pomóc ci w drobnych poprawkach.
Źródło: http://www.cloudreviews.com/blog/drupal-performance-optimization-tips
źródło
Istnieje kilka możliwości poprawienia prędkości Drupala na rozsądnym poziomie bez instalowania nowych modułów. Tak, Drupal ma konfigurację wydajności.
Włącz „Agreguj pliki JavaScript”
Po skonfigurowaniu tych konfiguracji przejdź do: YourSiteDomain / admin / raporty / status
A teraz skończysz z optymalizacją prędkości witryny Drupal 7.
Istnieje kilka narzędzi do testowania prędkości online, aby sprawdzić prędkość. Upewnij się, że używasz jednego z narzędzi kontroli prędkości i przeprowadź test przed aktualizacją powyższych ustawień. A po zaktualizowaniu ustawienia wydajności ponownie uruchom test prędkości. Na pewno zauważysz poprawę.
Pingdom i HTTP Fox (wtyczka FireFox) to najlepsze narzędzia do sprawdzania prędkości witryny.
Powyższe ustawienia nie tylko buforują twoje strony dla anonimowych użytkowników, ale także kompresują pliki CSS i JS. Przykład: jeśli Twoja witryna ładuje 80 plików, opublikuj te ustawienia, liczba żądań zmniejszy się do co najmniej o 50%, więc tutaj masz 2x poprawę prędkości na swojej stronie Drupal.
źródło
Jako programista zaplecza zawsze jest miejsce na ulepszenie kodu w celu zwiększenia wydajności witryny. Niektóre wytyczne dla programistów zaplecza mogą być:
1) Oczyść swój stół nadzorczy
2) Nie nadużywaj zmiennej API
3) Wykonaj mniej lub lepiej żądań HTTP
4) Trzymaj swój „moduł kropkowy” krótki
Jeśli chodzi o czcionki i kreatory stron, można osiągnąć znacznie więcej, ale ważne jest, aby wziąć pod uwagę wydajność z każdego punktu widzenia.
Źródło: Zoptymalizuj przed rozpoczęciem transmisji
źródło
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.
źródło