考虑多少合理的长期并发TCP会话?

时间:2019-05-15 15:01:00

标签: linux asynchronous tcp server

我正在Linux中开发一个TCP服务器,该服务器最初可以处理成千上万个并发客户端,这些客户端的寿命很长。但是,在开始实现某些功能之后,我为那些阻塞的调用创建了线程池,这些调用应分开进行,例如数据库或磁盘访问。

经过一些测试,在高负载下请求“许多”异步功能的情况下,由于许多任务被排队,服务器开始滞后,因为它们到达的速度快于它们的处理速度。这些任务可以在十亿分之一秒之内解决,但是有很多。我确实知道这是完全正常的。

我当然可以在负载均衡器后面发展,也可以购买具有更多内核的更好的服务器,但是,在实践中,作为行业的标准,在这样的服务器中,有多少个并发的长期TCP会话被认为是“好”数目就像我要描述的那样吗?我怎么能说我获得的并发连接数“足够好”?

1 个答案:

答案 0 :(得分:0)

不幸的是,没有一个神奇的数字可以回答您的问题,但是我有一些考虑事项可以帮助您找到您的电话号码:

  • 首先,每个操作系统都有自己的最大数量 同时连接,因为端口号是有限的。所以 检查您是否没有侵入该数字,否则每更新一次 服务器将拒绝连接。
  • 为了确定可以同时进行多少次连接,您必须为服务确定最大响应时间。

请记住,即使同时连接,多核CPU等,响应也将由同一网络发出并造成瓶颈。因此,我建议您对整个体系结构进行负载和压力测试,以找到可接受的延迟限制。


TL; DR: 没有神奇的答案,您应该进行负载和压力测试才能找到它。