Optymalizacja
Domyślne parametry Cherokee są odpowiednie w większości przypadków. Jest kilka rzeczy które mogą zostać dostosowane aby poprawić zachowanie Cherokee w danym przypadku.
Szczegóły kompilacji
Najpierw powinieneś sprawdzić w jaki sposób zbudowana została Twoja wersja Cherokee:
$ cherokee -i
Compilation
Version: 0.11.0
[...]
Support
IPv6: yes
OpenSSL: yes
Pthreads: yes
Tracing: yes
sendfile(): yes
syslog(): yes
Polling methods: select poll epoll
Ostatnia sekcja jest ważna, jeśli widzisz brak wsparcia dla jakiejś ważnej funkcjonalności, powinieneś przebudować Cherokee, lub sprawdzić czy wszystko jest wporządku z systemem.
Pamiętaj, że nie każda funkcjonalność jest dostępna na każdą platformę. Na przykład epoll jest specyficzne dla platformy Linux, jej brak na innym systemie nie jest niczym dziwnym. Jest ona bardziej wydajna niż inne dostępne pod Linuxem. Dla systemów bazujących na platformie BSD kqueue, zamiast standardowej poll, jest również świetnym wyborem. Jest to standard POSIX, i będzie dostępne tylko w systemach które są również zgodne z POSIX.
Compilation
Version: 0.11.0
[...]
Support
IPv6: yes
OpenSSL: yes
Pthreads: yes
Tracing: yes
sendfile(): yes
syslog(): yes
Polling methods: select poll epoll
Usprawnienia
Nie ma jednej idealnej konfiguracji dla każdego. Generalnie domyślna konfiguracja Cherokee oferuje dobry kompromis pomiędzy użyciem zasobów a wydajnością, ale w specyficznych przypadkach będziesz potrzebował usprawnić niektóre rzeczy, może ale nie musi to poprawić ogólną wydajność. Niektóre z nich warte uwagi są wymienione tutaj:
- Kompresja
- Dokładniejszy opis w sekcji kompresja
- Specyficzne ustawienia handlerów
- CGI, SCGI, FastCGI: X-Sendfile może zostać włączony lub wyłączony. Jak wiesz może to zwiększyć wydajność nawet kilkukrotnie. Oczywiście Twoja aplikacja musi również go obsługiwać.
- Static Content: IO Cache jest mechanizmem cachowania który poprawia wydajność dostarczania plików statycznych. Używanie go jest wskazane w każdym wypadku w którym zawartość pliku nie zmienia się często.
- Ogólne
- Timeout: Im niższy tym szybciej zwolnione zostaną zasoby kosztem aktywnych ale wolnych połączeń.
- Keep alive: Ta opcja zwiększa znacząco prędkość ponownych połączeń do tego samego klienta. Jest to szczególnie ważne w przypadku asynchronicznych aplikacji. Powoduje to jednak zmniejszenie dostępności połączeń dla klienta w dowolnym momencie. Cherokee stara się odzyskać nieużywane połączenia, szczególnie kiedy limit połączeń jest bliski końca. Pamiętaj o tym.
- Zaawansowane
- Threads: Domyślnie wartość ta jest tak dobrana aby w pełni wykorzystać procesor. Nie powinieneś odbiegać od niej za bardzo, dopóki wyższa wartość nie pozwoli uzyskać lepszej wydajności, oraz kiedy niższa wartość nie zmniejszy użycia procesora
- File descriptors: Z definicji, im wyższa będzie ta wartość, tym mniej wydajny będzie twój system. Ale, może zajść potrzeba, że będziesz musiał podnieść tą wartość. Kiedy masz stronę generującą duże obciążenie, podniesienie tego limitu ma sens, ponieważ im wyższy jest ten limit, tym więcej połączeń Cherokee może realizować.
- IO Cache: Ta opcja włącza lub wyłącza cacheowanie treści po stronie serwera. Jeśli wyłączone, cache w poszczególnych handlerach, będzie również wyłączone.
TRACE ( debugowanie )
Jeśli Cherokee został skompilowany z obsługą debugowania, jego wydajność dramatycznie spada. W środowisku produkcyjnym powinieneś to wyłączyć. Domyślnie wyłączone.
Szczegóły tej rewizji
Rewizje tego pliku
Rewizje w tej gałęzi
Data modyfikacji: 11-03-2009, 14:09:38
Autor: Jędrzej Nowak <me@pigmej.eu>
Typ formatowania: (x)html
Rewizje tego pliku
Rewizje w tej gałęzi
Data modyfikacji: 11-03-2009, 14:09:38
Autor: Jędrzej Nowak <me@pigmej.eu>
Typ formatowania: (x)html
http://www.cherokee-project.com/doc/cookbook_optimizations.html