RkBlog

Hardware, programming and astronomy tutorials and reviews.

Benchmark Pylons pod różnymi serwerami

Benchmark serwerów Cherokee i Nginx z wykorzystaniem protokołów SCGI i FastCGI mierzący czas odpowiedzi na żądania przy określonej puli nadchodzących żądań na sekundę

Przeprowadziłem mały test różnych konfiguracji Pylons-Serwer wykorzystując:
- Serwer Paste (tzw. "deweloperski") (pylons 0.9.2)
- Nginx jako reverse proxy do dwóch serwerów paste (0.4.2)
- Nginx z FastCGI
- Cherokee z SCGI (0.5.4)

Wykorzystałem prostą stronę w Pylons zwracającą szablon myghty (mały formularz wyszukiwarki), bez bazy danych, bez innych operacji. Testowane na Acer Aspire 5002 WLMi, AMD Turion ML-30, 512MB RAM, AMD64 Gentoo Linux. Test podzieliłem na dwie częsci - test przy obciążeniu nie generującym błędów (100 rządań/sekunda przy 10000 wszystkich rządań) oraz test przy dużym obciążeniu (300 i 400 rządań na sekundę przy 40000 wszystkich rządań). Narzędziem testującym był httperf a test został podzielony ze względu na zdolność do fałszowania wyników przez pojawiające się błędy.
To jest prosty benchmark i może nie odzwierciedlać wyników serwerów produkcyjnych.


100 żądań/sekunda


Całkowity Czas Procesora (%)


Czas odpowiedzi (ms)
Cherokee/SCGI najmniej obciąża procesor ale ma najwolniejszą odpowiedź (tylko 0,6 ms różnicy). Reverse Proxy dwa razy zajmuje drugie miejsce.

Serwer Paste

Connection time [ms]: avg 4.4
CPU time [s]: total 58.3%
Reply time [ms]: response 4.3

Nginx reverse proxy

Connection time [ms]: avg 5.0
CPU time [s]: total 52.5%
Reply time [ms]: response 4.9

Nginx FastCGI

Connection time [ms]: avg 4.7
CPU time [s]: total 54.3%
Reply time [ms]: response 4.7

Cherokee SCGI

Connection time [ms]: avg 5.1
CPU time [s]: total 50.6%
Reply time [ms]: response 5.0

Krytyczne Obciążenie


Ilość odpowiedzi [odpowiedzi/s]


Czas odpowiedzi (ms)
Cherokee wygrywa - ma najniższy czas odpowiedzi i największą ilość odpowiedzi udzielanych na sekundę. Nginx wypada nie za dobrze, FastCGI ma dobrą ilość odpowiedzi.

Serwer Paste

300 requests/s: Reply rate [replies/s]: avg 192.3
Reply time [ms]: response 2679.1
Errors: total 13391 client-timo 571

400 requests/s: Reply rate [replies/s]: avg 180.0
Reply time [ms]: response 2615.7
Errors: total 22115 client-timo 2154

Nginx reverse proxy

300 requests/s: Reply rate [replies/s]: avg 180.6
Reply time [ms]: response 2749.3
Errors: total 15031 client-timo 1764

400 requests/s: Reply rate [replies/s]: avg 183.9
Reply time [ms]: response 2725.1
Errors: total 21746 client-timo 2142

Nginx FastCGI

300 requests/s: Reply rate [replies/s]: avg 204.6
Reply time [ms]: response 2738.2
Errors: total 12187 client-timo 627

400 requests/s: Reply rate [replies/s]: avg 205.5
Reply time [ms]: response 2843.7
Errors: total 18694 client-timo 328

Cherokee SCGI

300 requests/s: Reply rate [replies/s]: avg 209.7
Reply time [ms]: response 2548.0
Errors: total 11533 client-timo 294

400 requests/s: Reply rate [replies/s]: avg 207.3
Reply time [ms]: response 2576.3
Errors: total 18325
RkBlog

Programowanie Sieciowe, 14 July 2008,

Comment article