.NET Socket Client性能似乎是每个目标IP的上限

时间:2014-08-20 21:59:51

标签: c# .net sockets networking

我有一个异步控制台.NET套接字客户端应用程序,它建立了与远程套接字服务器的数十个连接。

它是一个压力测试应用程序,因此每个连接都会发送尽可能多的消息,等待每封消息发送后来自远程服务器的确认。

套接字服务器有公共IP,但我也可以使用内部IP,因为它位于同一网络中。

随着连接数量的增加,每分钟的邮件数量下降非常糟糕,我一直试图找出原因。

但由于某种原因,对于共享相同目标IP的连接,性能似乎只会降低。换句话说,如果我将100个用户连接到内部IP,将5个用户连接到外部IP,后者在前者遭受损失时获得一流的性能。

但这没有任何意义,因为所有的通信都发生在相同的两台机器(我的桌面和唯一的服务器)之间。

传输的数据量似乎并不高,因为它可能是某种网络泛滥。老实说,对于等待给定目标IP上的答案的同时套接字的数量,它看起来像某种人工上限。我已经分析了我的代码及其挂起的位置,等待远程服务器应答。在.Net的配置文件中是否有类似的设置?

更新:服务器中只有一个网卡,我们用来通过端口转发工作的外部IP工作。

更多的内部IP被添加到服务器,但最终他们相互竞争资源,即只有外部IP表现不同。这让我怀疑瓶颈在服务器端,可能是每个客户端IP的某种负载平衡(当我们通过外部IP连接时,他们收到的客户端IP也会有所不同)

0 个答案:

没有答案