Fastsocket is a highly scalable socket and its underlying networking implementation of Linux kernel. With the straight linear scalability, Fastsocket can provide extremely good performance in multicore machines.
https://github.com/fastos/fastsocket
INTRODUCTION
Currently Fastsocket is implemented in the Linux kernel(kernel-2.6.32-431.17.1.el6) of CentOS-6.5. According to our evaluations, Fastsocket increases throughput of Nginx and Haproxy(measured by connections per second) by 290% and 620% on a 24-core machine, compared to the base CentOS-6.5 kernel.
Moreover, Fastsocket can further exploit more from the hardware:
SUITABLE SCENARIOS
Generally, scenarios meeting the following conditions will benefit the most from Fastsocket:
https://github.com/fastos/fastsocket
INTRODUCTION
Currently Fastsocket is implemented in the Linux kernel(kernel-2.6.32-431.17.1.el6) of CentOS-6.5. According to our evaluations, Fastsocket increases throughput of Nginx and Haproxy(measured by connections per second) by 290% and 620% on a 24-core machine, compared to the base CentOS-6.5 kernel.
Moreover, Fastsocket can further exploit more from the hardware:
- With Fastsocket, Hyper-Threading can make an extra 20% performance increase.
- With Fastsocket, NIC that support Flow-Director(like Intel 82599) can increase the throughput by 15% if the server works as a proxy(like Haproxy).
SUITABLE SCENARIOS
Generally, scenarios meeting the following conditions will benefit the most from Fastsocket:
- The machine has no less than 8 CPU cores.
- Large portion of the CPU cycles is spent in network softirq and socket related system calls.
- Short TCP connections are heavily used.
- Application uses non-blocking IO over epoll as the IO framework.
- Application uses multiple processes to accept connections individually.