Spraw, aby Twój serwis działał 10 razy szybciej

Portret użytkownika bluszcz

Mike Peters na swoim blogu stara się odpowiedzieć na pytanie, co zrobić aby przyśpieszyć serwis dziesięciokrotnie.

Wpis zaczyna się od wyliczenia typowych wąskich gardeł:

  • bazodanowane operacje zapisu
  • bazodanowane operacje odczytu
  • skrypty wykonywane po stronie serwera
  • skrypty po stronie klienta (JS)
  • duża ilość (często ciężkich) plików statycznych (js, obrazki, css) dociąganych
  • wolne połączenia keep alive, blokujące dostępne sockety

Jak przyśpieszyć więc? Przykładowe rozwiązania (całość dostępna w źródle dokumentu).

  • zmiejszyć liczbę zapytań (nie więcej niż dwa na stronę)
  • wdrożyć memcached
  • używać Firebuga i YSlow (pisałem o nim kilka dni temu - przyp. bluszcz)
  • zredukować liczbę dociąganych plików statycznych
  • odnośniki do css powinny być na szczycie strony, java scripty na dole
  • wszystkie skrypty php przekompilować używając eAccelrator, jeśli używamy wordpressa użyć WP-Cache
  • skonfigurować apache tak, aby dodawał nagłówki Expire oraz ETag
  • rozważyć migrację serwera http na lighttpd lub nginx
  • włączyć gzip

Moje uwagi:

  • zdecydowanie wybrać nginx (stabilniejszy, prostsza konfiguracja)
  • nie dodawać ETagów (powodują problemy)
  • nagłówki Expire można ustawić na co najmniej rok (jeśli się zmienią - zmieniamy adres plku css i serwujemy z innego adresu)
  • wszystki obrazki dostępne dla css umieszczamy w jednym pliku i tniemy cssami

Źródło: Make Your Site Run 10 Times Faster.

Bookmark and Share