4 ms·
Well, to be honest if you are IO/network bound and kernel TCP stack is the bottleneck then user space networking like DPDK can help in every application. It dep
by lossolo 7y ago
Well, to be honest if you are IO/network bound and kernel TCP stack is the bottleneck then user space networking like DPDK can help in every application. It depends on application but sometimes additional complexity of introducing DPDK is just not worth it, and just spinning another instance/server is a better choice. Look also at Seastar used in ScyllaDB with and without DPDK numbers.
Just remember you need to give DPDK one whole NIC and it's using polling so 100% CPU usage on polling cores.
- jdsully 7y agoDPDK does poll but you can have it sleep in low traffic situations. At the expense of a little extra latency.
- hinkley 7y agoI always figured the right solution here is a queue that sends any time the request queue is over N elements or every M microseconds, whichever happens first. Haven’t seen many implementations though. Nagle’s algorithm for the oldest, maybe a couple others, possibly some code I’ve written.
- zerd 7y agoI wonder how the performance compares with pedis [1], which is based on Seastar/ScyllaDB. https://github.com/fastio/pedis https://github.com/fastio/pedis
- shaklee3 7y agoDPDK has had ways to not use 100% of the CPU for polling for many years. https://doc.dpdk.org/guides-16.04/sample_app_ug/l3_forward_power_man.html https://doc.dpdk.org/guides-16.04/sample_app_ug/l3_forward_p...