支持 100 万连接的服务器实施的基准
goroutines per connection 实现的 1M 连接服务器epoll 实现的 1M 连接服务器epoll 实现的客户端multiple epoll 来管理连接multiple epoll 来管理连接prefork 风格来实现服务器Reactor 设计模式来实现多个事件循环goroutines per connection 服务器multiple epoll 服务器goroutines per connection 服务器multiple epoll 服务器goroutines per connection 服务器sysctl -w fs.file-max=2000500
sysctl -w fs.nr_open=2000500
sysctl -w net.nf_conntrack_max=2000500
ulimit -n 2000500
sysctl -w net.ipv4.tcp_tw_recycle=1
sysctl -w net.ipv4.tcp_tw_reuse=1客户端只有在收到响应后才会发送下一个请求。它没有使用"管道"风格进行测试。
| 吞吐量 (TPS) | 延迟 | |
|---|---|---|
| goroutine-per-conn | 202830 | 4.9s |
| 单个 epoll(服务器和客户端均为单个 epoll) | 42495 | 23s |
| 单个 epoll 服务器 | 42402 | 0.8s |
| 多个 epoll 服务器 | 197814 | 0.9s |
| prefork | 444415 | 1.5s |
| workerpool | 190022 | 0.3s |
| 中文介绍: |
暂无开放 Issues,或尚未同步最近议题。