Apachebench на сервере node.js возвращает "apr_poll: истекло указанное время ожидания (70007)" после ~30 запросов

Я только начал работать с node.js и проводил экспериментальное нагрузочное тестирование с ab, которое возвращает примерно 30 запросов или около того.

Я нашел другие страницы, показывающие намного лучшие числа параллелизма, чем я, такие как: http://zgadzaj.com/benchmarking-nodejs-basic-performance-tests-against-apache-php

Существуют ли какие-то критические параметры конфигурации сервера, которые необходимо выполнить для достижения этих показателей?

Я наблюдал за памятью сверху и все еще вижу приличный объем свободной памяти во время работы ab, также смотрел mongostat и не вижу ничего подозрительного.

Команда, которую я выполняю, и ошибка:

ab -k -n 100 -c 10 postrockandbeyond.com/
This is ApacheBench, Version 2.0.41-dev <$Revision: 1.121.2.12 $> apache-2.0
Copyright (c) 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Copyright (c) 2006 The Apache Software Foundation, http://www.apache.org/

Benchmarking postrockandbeyond.com (be patient)...apr_poll: The timeout specified has   expired (70007)
Total of 32 requests completed

Есть ли у кого-нибудь предложения о том, что я должен рассмотреть, что может быть причиной этого? Я запускаю его на OSX LION, но также выполнил ту же команду на сервере с теми же результатами.

РЕДАКТИРОВАТЬ: я в конце концов решил эту проблему. Я использовал TTAPI, который подключался к turntable.fm через веб-сокеты. На главной странице я подключался по каждому запросу. Так что происходило то, что после определенного количества соединений все распадалось. Если вы столкнулись с той же проблемой, проверьте, обращаетесь ли вы к внешним службам каждый запрос.

1 ответ

Согласно этому сообщению в блоге, это потому что Apache Bench делает HTTP/1.0 запросы, которые заставляют узел закрывать соединение, начиная с узла 0.6+.

Я не уверен почему; это похоже на ошибку узла.

В любом случае, короткий ответ - использовать что-то еще. Я использую httperf, который в любом случае кажется лучше.

Другие вопросы по тегам