2011-01-12 2 views
5

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

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

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

Это означает, что то, что я хочу, чтобы проверить это:

  1. Просьбы/Second на процессор
  2. Connections в RAM

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

ответ

4

Соединения/вторые: я сделал этот тест недавно с простым сервером node.js «hello world» и получил ~ 9 000 запросов/секунду на ядро ​​процессора. (Использование ab, btw. Тестирование на 2,5-ГГц четырехъядерном ядре Xeon linux).

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

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

+0

С ab я получаю ~ 6300 R/S с параллелизмом 100 на двухъядерном процессоре AMD K8 AMD. Что касается сценария Connections/Ram i, использующего сценарий tautologics -> github.com/tautologistics/node_loadtest, где я получаю около смешного 61000 соединений с примерно 250 МБ. То, что мне нужно знать, - это метод проверки максимального параллелизма/Ram с помощью apache. Какие-либо предложения??? О, и может ли у вас запустить скрипт ur, который, как вы достигли 5MB/1000 соединений? – user572715

17

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

По-видимому, из всех тестов, которые я видел, узел появляется первым с точки зрения скорости загрузки, но использует более память, а затем apache, поэтому идет ваше «доказательство».

Смежные вопросы