Провел день, изучая бенчмаркинг node.js и socket.io. Я попробовал несколько решений и обнаружил, что вы не можете использовать wsbench для тестирования socket.io, так как socket.io имеет свой собственныйпротокол, который должен быть адресован для установления соединений.
После неудачных попыток нескольких других решений я использовал socket.io-benchmark , и я просто установил 60 000 подключений на m1. Большой экземпляр EC2, использующий только одно ядро с запасом места.В моем случае я только хотел измерить издержки соединений socket.io (что потребовало от меня закомментировать некоторый код в socket.io-benchmark), чтобы не было сообщений между клиентом и сервером.
Интересно было видеть, что клиенты занимают больше ЦП и памяти, чем сервер.Поэтому убедитесь, что клиентский сервер, на котором вы производите тестирование, работает некорректно, я использовал EC2 c1.xlarge и у меня было много свободного места.И я разбил бенчмарк на 6 отдельных процессов, чтобы он мог масштабироваться по нескольким ядрам и избегать ограничений памяти.
Будьте осторожны, чтобы установить параметр <rampup in seconds>
достаточно высокий на клиентах, если вы установите его на низкий уровень всегобуферы и шлифовки, чтобы остановить.
Единственная проблема с socket.io-benchmark состоит в том, что мне пришлось использовать узел v0.4.12, чтобы заставить его работать, из-за зависимости от v8-profiler, которая не будет компилироваться в более новых версиях узла (по состоянию назапись).