Тестирование производительности Apache против NodeJs - PullRequest
5 голосов
/ 12 января 2011

В настоящее время я тестирую производительность между Node.js и Apache.

То, что я хочу доказать, это:

  • Apache медленнее, потому что ему нужно гораздо больше переключателей потоков, чем Node.js, который использует однопоточный цикл Event-Loop.
  • Apache требует намного больше ОЗУ / соединения по сравнению с Node.js, который использует epoll.

Это значит, что я хочу проверить следующее:

  1. запросов / сек на процессор
  2. подключений на ОЗУ

Хорошо, это то, что я хочу сделать! Но вопрос в том, КАК я должен это сделать? Для запроса / второго теста я мог бы просто использовать Apache Benchmark (ab) (но подходит ли ab даже для Node.js?) И самый большой вопрос: как я могу проверить соединения / RAM?

Ответы [ 2 ]

17 голосов
/ 13 апреля 2011

«Я хочу доказать» - это очень неправильное отношение при проведении сравнительного анализа. Вы ничего не доказываете, вы измеряете фактическую производительность. Вы можете или не можете быть удивлены результатом, но вы действительно должны начать с «Давайте посмотрим, что эта вещь может сделать».

Судя по всему, из всех тестов, которые я видел, узел сначала идет с точки зрения сырой скорости, но использует БОЛЬШЕ памяти, затем apache, так что вот вам и «доказательство».

4 голосов
/ 13 января 2011

подключений / сек. Недавно я провел этот тест на простом сервере "hello world" node.js и получил ~ 9000 запросов / сек на ядро ​​процессора. (Используя ab, кстати. Тестирование на 2.5GHz, четырехъядерном, Xeon linux box).

Соединения на ОЗУ: здесь есть два #, о которых вы заботитесь. Базовая память (требуется память без соединений) и память на соединение. Я проверил это на своем Mac Pro, раскрутив простой сервер / клиент с открытыми HTTP-соединениями. Я запустил команду top, чтобы посмотреть использование памяти. При нулевых соединениях узел имел RSIZE 14 МБ. Затем, с клиентом, работающим и поддерживающим 2000 одновременных соединений, RSIZE вырос до 24 МБ. Итак, ~ 5 МБ / 1000 подключений.

Когда вы получите # для Node и Apache, вы можете опубликовать их здесь? Мне тоже любопытно.

...