Подтвердить что ты не робот

Сколько пользователей Nodejs & Socket.io могут поддерживать?

У меня есть сайт, который реализует broadcast.emit. который отправляет сообщение всем пользователям сайта. Это просто самая простая реализация socket.io, но в настоящее время у меня проблема. Когда я ударил около 100 одновременно работающих пользователей. Сервер nodejs начинает отставать, пока он не висит, что я больше не могу получить доступ ко всему сайту. Когда мы проверили сервер. Узел js принимает 100% CPU. Это нормально?

Мне было интересно, сколько пользователей может поддерживать socket.io? И когда это происходит, есть ли способ перезапустить сервер nodejs программно?

4b9b3361

Ответ 1

Не менее 250 тыс. одновременных подключений (и для большинства случаев использования узким местом является память)

Ответ 2

У меня многопользовательская карточная игра. Socket.io выделяет мой процессор около 3000 одновременно работающих пользователей. Это на процессоре Intel i7. Из-за этого мне нужно запустить несколько процессов node/socket.io для обработки нагрузки.

Для 100 одновременных подключений вы должны быть в порядке. Возможно, вы используете некоторые VPS, а CPU используется совместно со всеми другими виртуальными машинами? Вы запускаете выделенный сервер?

Также проверьте свой код. Вы можете делать синхронно некоторые вещи, которые должны идти асинхронно.

Ответ 3

Насколько важно, чтобы вы отправляли сообщения всем клиентам, не отбрасывая их? Если нет, я бы предложил использовать вызов socket.volatile.emit. Проблем с удаленными клиентами и нестабильными подключениями может быть множество.