[Moscow.pm] FastCGI
Valery Studennikov
despairr на gmail.com
Ср Июн 18 04:45:29 PDT 2008
On Tue, May 27, 2008 at 11:52:29AM +0400, Anatoly Sharifulin wrote:
> Интересное мнение :)
> Давайте устроим онлайн хакатон - сделаем теситрование различных серверных
> решений:
> - FastCGI
> - mod_perl2
> - HTTP::Daemon
> - Net::Server
> - Catalyst::Engine
> - POE
>
> Я могу написать@POE, вариантов несколько, в т.ч. и pre-fork есть.
> Только нужно опеределиться с прикладной логикой, которую будем тестировать
> (желательно, не Hello World тестировать :).
Тестирую живой сайт с достаточно "тяжёлой" логикой -- www.reg.ru.
Раньше был на apache+mod_perl, сейчас перевёл на Catalyst::Engine::HTTP::Prefork.
Провёл локальные эксперименты, после чего перевёл production сервер.
Т.е сейчас работат связка nginx + Catalyst::Engine::HTTP::Prefork.
> Что важно:
> - производительность (количество запросов в секунду)
Практически не изменилось.
Среднее время отклика равно в обоих случаях.
Однако, максимальное время отклика меньше у Catalyst::Engine,
т.е. он более "предсказуем".
> - использование ресурсов (память, CPU, количество процессов)
Памяти жрёт немного меньше, примерно на 10%.
(40Mb Catalyst::Engine vs 40 Mb apache+mod_perl)
> - отказоустойчивость
Пока какой-либо нестабильности / глюков не замечено.
* * *
Вот грубые результаты тестов (правда, в один поток):
################# APACHE+MOD_PERL
$ ab -n 100 http://www1.reg.ru:80/
Benchmarking www1.reg.ru (be patient).....done
Server Software: Apache/2.2.8
Server Hostname: www1.reg.ru
Server Port: 80
Document Path: /
Document Length: 42268 bytes
Concurrency Level: 1
Time taken for tests: 7.317259 seconds
Complete requests: 100
Failed requests: 11
(Connect: 0, Length: 11, Exceptions: 0)
Write errors: 0
Total transferred: 4259074 bytes
HTML transferred: 4226774 bytes
Requests per second: 13.67 [#/sec] (mean)
Time per request: 73.173 [ms] (mean)
Time per request: 73.173 [ms] (mean, across all concurrent requests)
Transfer rate: 568.38 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 0 0.0 0 0
Processing: 66 72 8.8 70 127
Waiting: 64 71 8.6 68 125
Total: 66 72 8.8 70 127
Percentage of the requests served within a certain time (ms)
50% 70
66% 73
75% 75
80% 76
90% 78
95% 88
98% 111
99% 127
100% 127 (longest request)
################# Catalyst::Engine::HTTP::Prefork
[walery на despair srs]$ ab -n 100 http://www1.reg.ru:3000/
Benchmarking www1.reg.ru (be patient).....done
Server Software:
Server Hostname: www1.reg.ru
Server Port: 3000
Document Path: /
Document Length: 42264 bytes
Concurrency Level: 1
Time taken for tests: 7.498447 seconds
Complete requests: 100
Failed requests: 11
(Connect: 0, Length: 11, Exceptions: 0)
Write errors: 0
Total transferred: 4256878 bytes
HTML transferred: 4226378 bytes
Requests per second: 13.34 [#/sec] (mean)
Time per request: 74.984 [ms] (mean)
Time per request: 74.984 [ms] (mean, across all concurrent requests)
Transfer rate: 554.38 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 0 0.0 0 0
Processing: 70 74 4.8 73 96
Waiting: 64 72 4.9 71 95
Total: 70 74 4.8 73 96
Percentage of the requests served within a certain time (ms)
50% 73
66% 75
75% 76
80% 77
90% 81
95% 83
98% 96
99% 96
100% 96 (longest request)
--
Regards,
Walery Studennikov
CTO of Accredited Domain Name Registrar REG.RU
http://www.reg.ru/
Подробная информация о списке рассылки Moscow-pm