много одновременных подключений - PullRequest
1 голос
/ 22 ноября 2011

Я работаю над приложением чата.Базовый сервер использует Node.js, а связь клиент / сервер происходит через WebSockets.

Итак, вопрос в том, сколько одновременных соединений может обработать такой сервер (без видимых лагов)?Конечно примерно и предполагая, что сервер очень мощная машина.Я знаю, что на этот вопрос нелегко ответить, но я просто хочу идеи, некоторые приближения ... или хотя бы верхние и нижние границы.Конечно, я собираюсь сделать несколько практических тестов, но теория может мне немного помочь.

Также у меня есть еще один вопрос, связанный с первым: можно ли разбить приложения Node.js на несколько машин??Имейте в виду, что большая часть данных хранится в памяти машин, а не в базе данных.

Ожидание ответов.:)

Ответы [ 2 ]

1 голос
/ 22 ноября 2011

Вы должны убедиться, что вы запускаете node.js поверх epoll / kqueue и настраиваете свою ОС для больших номеров соединений TCP.

Вот пара измеренных чисел для системы публикации / подписки на основе Autobahn WebSockets:

  • 180k одновременных активных соединений WebSocket
  • отправленных сообщений pubsub 12k / s
  • рукопожатия открытия WebSocket 4 К / с
  • <8 КБ на каждое соединение WebSocket </li>

Это на виртуальной машине FreeBSD i386, настроенной на 2 ядра и 2 ГБ ОЗУ.

Autobahn WebSockets основан на Python / Twisted и работает на реакторе Kqueue.

0 голосов
/ 24 ноября 2011

Я сделал простой тест приложения для многокомнатного чата .Просто не забывайте следить за процентом ЦП во время его работы, возможно, приложение для тестирования производительности будет загружать ЦП быстрее, чем сервер!

...