【发布时间】:2019-10-02 18:39:52
【问题描述】:
我正在 Linux 中开发一个 TCP 服务器,它最初可以处理数千个并发客户端,这些客户端旨在长期存在。然而,在开始实现一些功能之后,我为那些阻塞的调用创建了一个线程池,这些调用应该分开完成,比如数据库或磁盘访问。
经过一些测试,在请求“许多”异步函数的高负载下,由于许多任务被排队,我的服务器开始滞后,因为它们到达的速度比处理它们的速度快。这些任务在纳秒内解决,但有数千个。我明白这是完全正常的。
我当然可以在负载均衡器或购买具有更多内核的更好服务器之后发展,但是,在实践中,作为行业标准,在这样的服务器中,有多少并发的长寿命 TCP 会话被认为是一个“好”的数字像我描述的这个?我怎么能说我得到的并发连接数“足够好”?
【问题讨论】:
-
主机 RFC 曾经说过主机不应打开两个以上到服务器的连接。不过,我认为浏览器在十年前就停止这样做了。
-
您需要能够处理您的网站所需的尽可能多的会话。这取决于您在单台计算机上托管的站点数量、它们的受欢迎程度以及应用程序的设计方式。没有简单的答案。 Server Fault 是询问有关为预期负载配置服务器的问题的更好地方。
标签: linux asynchronous tcp server