3 ms·
This is pretty old, right? These days 'Fast Servers' refers to bare-metal network interface without a kernel which can achieve far higher throughput than passin
by RyanZAG 11y ago
This is pretty old, right? These days 'Fast Servers' refers to bare-metal network interface without a kernel which can achieve far higher throughput than passing it through a kernel/epoll.
- pstrateman 11y agoDirect memory mapping from NIC to userspace with a userspace TCP/IP stack can significantly accelerate ultra low latency processing. The effect basically disappears when you're looking at webpages that take 10-1000ms to generate.
- RyanZAG 11y agoAgreed, as soon as per-request processing becomes a large portion of the work it will dwarf these types of optimizations. The article is talking specifically about "simple one-page performant servers that easily get into the 100k requests/second territory", which can see very large throughput increases with direct NIC access.
- geocar 11y agodash[1] is a dynamic webserver that uses the logic described in the article (content logic is in Q/KDB). I have considered writing a userspace TCP HTTP server like the one you suggest, but it would be a demonstration of how to write a state machine and not how to better use the facilities that the operating system provides for writing a server. [1]: https://github.com/geocar/dash https://github.com/geocar/dash