【问题标题】:Performance considerations of a large number of connection on the same port同一端口上大量连接的性能考虑
【发布时间】:2010-10-07 20:13:23
【问题描述】:

在设计侦听一个端口的服务器应用程序时应考虑哪些性能注意事项?我知道成千上万个客户端可以通过单个端口连接到服务器,但是让服务器应用程序接受单个端口上的所有传入请求会对性能产生负面影响吗?

我的理解是否正确,这种模型(服务器侦听处理传入连接的一个端口,然后通过建立客户端连接时创建的出站连接进行响应)是数据库/网络服务器等的工作方式?

问候, 布赖恩

【问题讨论】:

    标签: sockets


    【解决方案1】:

    服务器监听一个端口还是多个端口都没有关系。服务器仍然必须为它接受的每个客户端建立一个完整的套接字连接。操作系统仍然必须将入站数据包路由到正确的套接字端点,并且套接字由两个端点的 IP/端口对的组合唯一标识,因此如果服务器端点使用不同的端口,则不会出现性能问题。

    任何性能问题都会出现在服务器代码处理这些套接字连接的方式上。如果它只侦听一个端口,并在单个线程中使用简单的 accept() 循环接受该端口上的客户端,那么它可以接受客户端的速率受到该循环的限制。通常,服务器为每个接受的客户端生成工作线程,如果不使用线程池,它本身就有自己的性能开销。如果服务器需要同时处理大量客户端,那么它应该使用重叠的 I/O 或 I/O 完成端口来更有效地处理连接。

    【讨论】:

      猜你喜欢
      • 2015-06-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多