Странное поведение с NodeJS и тестом Apache

Я тестирую nodejs (0.8.11).

со следующим приложением сервера:

var http = require('http');
http.createServer(function (req, res) {
    console.log('hit!');
    res.writeHead(200, {'Content-Type': 'text/plain'});
    res.end('Hello World\n');
}).listen(1337, '127.0.0.1');
console.log('Server running at http://127.0.0.1:1337/');

Я запустил Apache Benchmark:

ab -r -v 4 'http://127.0.0.1:1337/'

Я получаю следующий вывод:

hit!
hit!
hit!
hit!
hit!
hit!
hit!
hit!
hit!
... (alot more)

вывод из ab:

Benchmarking 127.0.0.1 (be patient)...INFO: POST header == 
---
GET / HTTP/1.0
Host: 127.0.0.1:1337
User-Agent: ApacheBench/2.3
Accept: */*


---
LOG: header received:
HTTP/1.1 200 OK
Content-Type: text/plain
Date: Thu, 11 Oct 2012 06:40:04 GMT
Connection: close

Hello World

LOG: Response code = 200
..done


Server Software:        
Server Hostname:        127.0.0.1
Server Port:            1337

Document Path:          /
Document Length:        12 bytes

Concurrency Level:      1
Time taken for tests:   0.009 seconds
Complete requests:      1
Failed requests:        0
Write errors:           0
Total transferred:      113 bytes
HTML transferred:       12 bytes
Requests per second:    115.05 [#/sec] (mean)
Time per request:       8.692 [ms] (mean)
Time per request:       8.692 [ms] (mean, across all concurrent requests)
Transfer rate:          12.70 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        8    8   0.0      8       8
Processing:     0    0   0.0      0       0
Waiting:        0    0   0.0      0       0
Total:          9    9   0.0      9       9

и думая, что количество запросов по умолчанию не равно 1, как указано в руководстве ab, я попытался:

ab -v 4 -n 1 -c 1 'http://127.0.0.1:1337/'

Я получаю тот же вывод (много "хитов!" В журнале)

Что здесь происходит?

Это относится к узлу, я пробовал то же самое с моим приложением ab -c 1 -n 1, был только 1 зарегистрированный хит...

ПРИМЕЧАНИЕ: я пробовал с керлингом службы узла - только 1 'хит!' в журнале...

2 ответа

Решение

Я также разместил это в google group nodejs. Видимо, это ошибка в MacOSX Lion версии Apache / AB.

Оригинальный ответ от группы nodejs:

https://groups.google.com/d/msg/nodejs/OqVZ4zPbqp0/DitO9xkmFOUJ

Также здесь есть прямая ссылка на соответствующую страницу с описанием проблемы.

Что здесь происходит?

Каждый "хит" - это новое соединение. Почему это выглядит неправильно с вашей точки зрения?

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