Четверг, 28 Мая 2009 г. 08:54
+ в цитатник
Надо как-то по дзенски перефразировать, что когда начинаешь проверять очевидные вещи, то великое множество открытий обнаруживаешь.
Сейчас пишу один проект в котором мне требуется обрабатывать миллионы запросов в сутки, а может быть и в час. Всегда думал, что
ab
именно так утилита с помощью которой проверяется нагрузка на сервера. Невод свой забрасывал вот такой непритязательной командой:
loremaster:~ xen$ ab -n 10000 -c 100 http://127.0.0.1/
Умер nginx, умер обычный django (для теста), erlang сервер не умер. Но характер загрузок ядра получился очень некрасивый и неприятный (дело было на ноуте MacBook Intell), самый длинный запрос залетел аж на 19 секунд, при этом какое-то мгновение оба ядра заняты на 100% потом тишина, потом опять. Главное что сервера на erlang'е неумирают, но и то ладно.
Пришлось невод заменить на
loremaster:~ xen$ ab -n 10000 -c 10 http://127.0.0.1/
С 3й попытки django/python прошел проверку, то есть сервер вылетает случайным образом. nginx тоже кое как дошел до финиша, erlang справился без кряхтения.
Раз в статье речь про статистику, то вот сравнение. Хотя для меня в нем цели как таковой не было. Приложение пока не написано.
Server Software: nginx/0.6.32
Server Hostname: 127.0.0.1
Server Port: 80
Document Path: /
Document Length: 151 bytes
Concurrency Level: 10
Time taken for tests: 2.289 seconds
Complete requests: 10000
Failed requests: 0
Write errors: 0
Total transferred: 3620000 bytes
HTML transferred: 1510000 bytes
Requests per second: 4368.58 [#/sec] (mean)
Time per request: 2.289 [ms] (mean)
Time per request: 0.229 [ms] (mean, across all concurrent requests)
Transfer rate: 1544.36 [Kbytes/sec] received
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Server Software: MochiWeb/1.0
Server Hostname: 127.0.0.1
Server Port: 8000
Document Path: /
Document Length: 88 bytes
Concurrency Level: 10
Time taken for tests: 6.935 seconds
Complete requests: 10000
Failed requests: 0
Write errors: 0
Total transferred: 2900580 bytes
HTML transferred: 880176 bytes
Requests per second: 1441.88 [#/sec] (mean)
Time per request: 6.935 [ms] (mean)
Time per request: 0.694 [ms] (mean, across all concurrent requests)
Transfer rate: 408.43 [Kbytes/sec] received
При прочих равных лучше использовать сервера на erlang'е, скорость отличная и надежность офигительная.
-
Запись понравилась
-
0
Процитировали
-
0
Сохранили
-