3 ms·
to avoid context switching?
by Zekio 7y ago
to avoid context switching?
- eptcyka 7y agoTo do that properly, you'll have to interface with the network device directly through userspace. Whilst this is certainly possible, you end up with implementing a device driver in the end which might or might not be what you want to do.
- stingraycharles 7y agoWhich is exactly what Mellanox and others are doing. At QuasarDB, we’re using their drivers to bypass the kernel entirely, which (at scale) saves tremendous amounts of CPU load.
- sanjayts 7y agoAre you talking about these[1]? Also, would you have a rough ballpark figure on the CPU load reduction you have seen using these? [1] http://www.mellanox.com/page/products_dyn?product_family=209&mtag=pmd_for_dpdk http://www.mellanox.com/page/products_dyn?product_family=209...
- stingraycharles 7y agoActually it’s VMA: http://www.mellanox.com/page/software_vma?mtag=vma http://www.mellanox.com/page/software_vma?mtag=vma 100GBit would usually put enormous strains on the CPU (to the point it’s pretty much only doing that), which is taken away entirely by using this. As it turns out, hardware appears to be much faster at these types of things than general purpose CPUs. :)
- raphaelj 7y agoThese user-space TCP stacks usually use an user-space driver or a driver that minimizes system calls with packet aggregation. For example DPDK.