Xzo*_*rax 2 c++ sockets performance multithreading boost
我想问一些关于优化linux socket的问题.我尝试使用boost和简单的linux套接字来制作多线程负载均衡器.负载均衡器的工作原理与这些步骤一样简单:
我也使用来自使用epoll的ting库的Waitset来使recv方法处于阻塞模式,这样它就会等到发生事件然后从套接字读取数据.
问题是当我用AB测试负载均衡器时,-n 10000 -c 100 -k,结果非常令人失望.我只有~1600 tps.我试着记录每个请求的请求时间,但结果很好.每次往返得到<1000微秒/ 1毫秒.
但是当我记录传入的请求间隔时,下一个请求处理的当前请求大约> 5000微秒/ 5毫秒.也许任何人都可以建议一个更好的解决方案来优化套接字操作?谢谢.
你使这个过于复杂.每个连接的线程不会超出简单的示例,请阅读C10K问题以获取更多详细信息.
我建议您阅读有关负载均衡器的Boost.Asio库.它epoll(4)在Linux系统上用于异步事件多路分解,并且比每个连接的线程更好地扩展.
| 归档时间: |
|
| 查看次数: |
1552 次 |
| 最近记录: |