statsdaemon icon indicating copy to clipboard operation
statsdaemon copied to clipboard

Multithreaded UDP socket reading, reuseport for improved performance?

Open Dieterbe opened this issue 9 years ago • 5 comments

Currently reading from udp socket is slow (golang udp lib not very optimized) and can saturate a CPU core. Should look into multithreaded udp reading and also reuseport. See https://lwn.net/Articles/542629/

Dieterbe avatar Jun 18 '15 14:06 Dieterbe

statsd-proxy has REUSE https://github.com/hit9/statsd-proxy i drop less metrics with statsd-proxy + 4x nodejs pids than with statsdaemon latest.

tehlers320 avatar Jan 24 '17 20:01 tehlers320

Here is some data on statsd-proxy vs going straight into statsdaemon. The droprate doubles once switching from statsd-proxy -> 4 classic statsd pids to statsdaemon.

10:30 is when cutover occurs for a short test. udpdroprate

tehlers320 avatar Jan 26 '17 17:01 tehlers320

https://github.com/golang/go/issues/23696 https://groups.google.com/forum/#!msg/golang-dev/HAEaU5TakTU/ZfMLVLqEBAAJ https://go-review.googlesource.com/c/go/+/72810

It looks like go 1.11 will make this possible soon.

tehlers320 avatar Mar 16 '18 20:03 tehlers320

Nice !

Dieterbe avatar Mar 16 '18 20:03 Dieterbe

any plans to implement this feature?

vbichov avatar Sep 01 '19 21:09 vbichov