Hacker News new | past | comments | ask | show | jobs | submit login

Is 100K mps on 8 cores considered high for node/websockets microbenchmarking of the socket path?

That doesn't seem like much from past experience writing high-throughput messaging code, and all this is doing is spitting out length-framed messages to a socket.




We do not (yet) measure the performance of Websocket in our project (the TechEmpower framework benchmarks), but our "Plaintext" test is a rough analogue to a ping-pong test on Websocket. Our Plaintext test uses HTTP pipelining on a keep-alive connection. However, in our case, each request is sending a couple hundred bytes of HTTP request headers and receiving about the same in response HTTP headers prior to a "Hello world" payload.

We see approximately 600,000 of these HTTP "messages" per second on a i7-2600K 8 HT core workstation [1] from top performers such as Netty and Undertow and these top performers are network limited by our gigabit Ethernet.

We are using Undertow for a Websocket project presently and its performance there has been very good.

[1] http://www.techempower.com/benchmarks/#section=data-r9&hw=i7...


It's not high at all.

I have never worked with node though... so maybe it's ... sort of ... "fast for node". Not fast in absolute terms.


That's what I was thinking, too. That's merely around 13,000 messages per second per core. Rates like that weren't all that impressive on low end server hardware a decade ago, so I'd hope that it's even less impressive today when using more modern hardware (or even VMs).


I'd be expecting more in the realm of millions of messages per second, at least from a Java solution.


Can you give some numbers of your past experience?


Not OP, but a solar flare can shoot 20 million packets per second..

http://www.solarflare.com/09-11-12-Solarflares-Industry-Lead...

You need to totally bypass the linux kernel to do this, and have high perf C or Java code...


That's raw network (TCP/UDP) packets, not WebSocket frames/messages. Plus that product is a solution to a hardware problem, not a software problem. It doesn't relate at all.


Just for anyone else who sees that and thinks "WTF": it's 20M PPS across two ports. (14,880,952 is the max for 10GbE.)




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: