Этот вопрос задавался ранее, но не недавно, и на него нет четкого ответа.
Имеется ли при использовании Socket.io максимальное количество одновременных подключений, которое можно поддерживать, прежде чем вам понадобится добавить еще один сервер?
Кто-нибудь знает какие-либо активные производственные среды, в которых массово используются веб-сокеты (особенно socket.io)? Я действительно хотел бы знать, какая конфигурация лучше всего подходит для максимального количества подключений?
Поскольку веб-сокеты построены на основе TCP, я понимаю, что если порты не используются совместно между соединениями, вы будете ограничены лимитом порта в 64 КБ. Но я также видел сообщения о 512К-соединениях с использованием Gretty . Так что не знаю.
Ответы:
Эта статья может помочь вам в этом: http://drewww.github.io/socket.io-benchmarking/
У меня возник тот же вопрос, поэтому я написал небольшой тест (с использованием XHR-опроса), чтобы увидеть, когда соединения начали отказывать (или отставать). Я обнаружил (в моем случае), что сокеты начали действовать примерно при 1400-1800 одновременных подключениях.
Это краткое содержание, которое я сделал, похожий на тест, который я использовал: https://gist.github.com/jmyrland/5535279
источник
Я пытался использовать socket.io на AWS, я могу поддерживать стабильными около 600 подключений.
И я выяснил, что это связано с тем, что socket.io сначала использовал длинный опрос, а потом перешел на websocket.
после того, как я установил конфигурацию для использования только веб-сокета, я могу сохранить около 9000 подключений.
Установите эту конфигурацию на стороне клиента:
источник
Кажется, этому парню удалось установить более 1 миллиона одновременных подключений на одном сервере Node.js.
http://blog.caustik.com/2012/08/19/node-js-w1m-concurrent-connections/
Мне не совсем ясно, сколько портов он использовал.
источник
Для + 300к одновременного подключения:
Установите эти переменные в
/etc/sysctl.conf
:Также измените эти переменные в
/etc/security/limits.conf
:И, наконец, увеличьте также буферы TCP
/etc/sysctl.conf
:для получения дополнительной информации посетите https://www.linangran.com/?p=547
источник
После настройки вы можете проверить, написав эту команду в терминале
источник