Comment by Asmod4n
5 days ago
To be more precise: i use that map to send assets out directly to clients from a zip file.
Its a new web server i am building and its the fastest way i could find out.
Just switching from epoll to liburing made the server ~45% faster too, its ridiculous. It can serve 10 gigabyte per second with a single thread, or around 10 million responses per second with h2 and 32 multiplexed requests.
I had to write a new http load generator for that since i couldn't find one which could generate enough load to saturate my server or be fast enough to withstand it.
10 gb per second is pretty slow for a disk. You should be seeing much higher than that.
??? The only configuration that will allow disk reads at 10 GB/s is if you're using PCIe 5.0. PCIe 4.0 or lower, and SATA will not drop out long before that.
He's very clearly hauling data straight from the page cache.
...I'm still confused why you wouldn't use memcpy?
How can one memcpy from a fd to a socket? I don’t touch the bytes in userspace, I just tell the kernel to send them out.
So why would you mmap?
1 reply →