Odpowiedź Markdorisona jest w zasadzie przyjętą metodą ataku na ten problem. Zajmę się tym trochę dalej.
Kiedy masz Pressflow dla D6 lub Drupal dla D7, Memcached i Lakier działają dobrze razem, musisz dostosować kod pliku VCL . Dostępne są darmowe, które tworzą punkty początkowe, ale zawsze musisz się nimi bawić.
Aby Varnish działał optymalnie, upewnij się, że uruchamiasz go z -s malloc xG zamiast domyślnego -s file / path / to / file. Również w przypadku lakieru przechowuj statyczne przedmioty w pamięci podręcznej lakieru tak długo, jak możesz.
Jeśli masz więcej niż jeden serwer WWW, usuń ETag z nagłówka wysłanego do Varnish w VCL. Usuwam także Expires i po prostu polegam na Wiek i maksymalny wiek w nagłówkach, aby przeglądarki mogły wrócić do strony.
Wersja 1.5 (od 3 marca 2011 r.) Jest wciąż najszybszą wersją modułu Memcached od Drupal.org. Zwykle wdrażam go za pomocą jednego pojemnika na serwer, aby obniżyć ruch TCP dla połączeń z wieloma pojemnikami na dużą skalę)
Skonfiguruj buforowanie w „Wydajności” na zewnętrzne i ustaw maksymalny wiek, który wyśle prawidłowe nagłówki do buforującego serwera proxy, takiego jak Varnish.
Jeśli nie możesz uzyskać poprawnego buforowania niektórych stron w programie Varnish, sprawdź posty na blogu w Internecie, które szczegółowo opisują sposób sprawdzania żądań. Oto przykładowy post, który napisałem jakiś czas temu: Co powstrzymuje Varnish i Drupal Pressflow przed buforowaniem wyświetleń stron anonimowych użytkowników
Powinieneś wybrać InnoDB (lub jedną z jego nazw innych dostawców, takich jak XtraDB) dla MySQL i przenieść do niego wszystkie tabele. Następnie sprawdź ten post na blogu, aby uzyskać podstawowe porady dotyczące tuningu http://www.mysqlperformanceblog.com/2007/11/01/innodb-performance-optimization-basics/
Posiadanie dużej puli buforów jest fundamentalnie ważne. Podczas testowania strony włącz dziennik powolnych zapytań. Prawdopodobnie chcesz najpierw przechwytywać zapytania trwające dłużej niż 50 ms, a następnie dostroić je i powtarzalnie skracać czas powolnego przechwytywania dziennika, dopóki większość zapytań nie będzie działać przy użyciu indeksów i działa dość szybko.
Inne podstawy obejmują posiadanie APC dla PHP. Jeśli wybierasz szybki CGI zamiast mod_php, poświęć trochę czasu na udostępnienie pamięci podręcznej APC między instancjami php, konfigurując dobry skrypt opakowujący. Upewnij się również, że pamięć podręczna APC znajduje się w pliku odwzorowanym w pamięci, aby wycisnąć każdy ostatni fragment PHP.