适用于Windows和Linux的同一台计算机上的套接字

发布于 2021-02-02 11:10:37

与Windows和Linux上的命名管道和其他方法相比,在执行IPC时使用套接字的效率如何?

现在,我在4个需要通讯的单独盒子上有4个单独的应用程序。两个是在Windows Server 2003 R2上运行的.NET
3.5应用程序。两个是Linux(Suse Linux
10)。它们通常不受CPU限制。流量不是很大,但是很重要的一点是低延迟。我们现在使用的套接字已禁用nagle,并且在Linux机器上安装了sles10慢启动补丁。

您认为通过简单地在同一Windows框上运行两个Windows应用程序和在同一Linux框上运行两个Linux应用程序并且不进行代码更改(即仍然使用套接字),将获得多少速度提升。

操作系统是否会意识到端点在同一台计算机上并且知道不随数据包一起出入以太网?他们的数据包是否仍然需要遍历整个网络堆栈?如果我们花时间更改到命名管道或内存映射文件或其他内容,速度会快多少?

关注者
0
被浏览
148
1 个回答
  • 面试哥
    面试哥 2021-02-02
    为面试而生,有面试问题,就找面试哥。

    至于TCP性能,我最近在HP-UX服务器(8个Intel Itanium 2处理器1.5 GHz 6 MB,400 MT / s总线)和Red Hat
    Linux(2 IA-64 1,6 Ghz)上进行了这种测试。
    )。我使用iperf来测试TCP性能。我发现在同一台计算机上运行iperf时,与在两台不同计算机上运行iperf相比,TCP交换的速度要快十倍以上。

    您也可以尝试一下,因为可能有一些您可能会感兴趣的选项-
    读取或写入的缓冲区长度,设置TCP无延迟等。您也可以比较Windows机器上TCP交换的速度,因为有适用于Winddws的iperf版本。

    这是更详细的比较:

    1)在不同HP-UX服务器上运行的两个iperf应用程序之间的TCP交换速度,默认TCP窗口32K:387 Mbits / sec

    2)在不同HP-UX服务器上运行的两个iperf应用程序之间的TCP交换速度,TCP窗口512K:640 Mbits / sec

    3)在同一HP-UX服务器上运行的两个iperf应用程序之间的TCP交换速度,默认TCP窗口32K:5.60 Gbits / sec

    4)在同一HP-UX服务器上运行的两个iperf应用程序之间的TCP交换速度,默认TCP窗口512K:5.70 Gbits / sec。

    5)在同一Linux服务器上运行的两个iperf应用程序之间的TCP交换速度,TCP窗口512K:7.06 Gbits / sec

    6)在HP-UX和Linux上运行的两个iperf应用程序之间的TCP交换速度,TCP窗口512K:699 Mbits /秒



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看