首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >10 10Gbit以太网在自定义应用程序上的性能非常差

10 10Gbit以太网在自定义应用程序上的性能非常差
EN

Server Fault用户
提问于 2009-06-15 17:04:38
回答 3查看 10.8K关注 0票数 3

最近,我在几台机器上安装了几个10 10Gbit以太网卡,它们连接到一个由大约80个商品节点组成的局域网,运行一个分布式文件系统(Lustre)。10 10Gbit卡在文件操作上取得了良好的性能,并按其应有的功能运行。

但是,我用C编写了一个自定义客户端应用程序,它异步地向网络中的多个节点发送大块数据。客户端应用程序运行的机器上有一个10 1GB的以太网卡,所有的目标节点都有一个1GB的以太网卡,所以我应该能够得到理论上10 gbits的最大发送速率。

如果我在一台带有1Gbit卡的机器上运行客户端应用程序,那么它很容易使该卡持续运行一段时间。但奇怪的是,如果我在一台带有10 10Gbit卡的机器上运行相同的应用程序,它的性能会很糟糕(每秒20-30 mbits )。

程序用C语言编写,使用普通的TCP套接字。10 10Gbit是否需要特殊设置?因为它在1 1Gbit卡上获得最大性能是很奇怪的,但是在10 1Gbit卡上却是糟糕的表现。同样,问题不是10 10Gbit卡本身,因为分布式文件系统(Lustre)获得了良好的性能与10 10Gbit卡。

有什么想法/建议吗?

EN

回答 3

Server Fault用户

发布于 2009-06-15 20:26:31

我注意到,10 1gb和1GB lan段之间的一个问题是,默认的MTU是不同的。10gb以太网使用默认的MTU为9000,而对于1gb以太网则使用默认的1500。您可以将10g上的MTU更改为较低的号码,也可以设置您的路由器来处理大数据包的分解。

这给我带来了一些麻烦,因为如果没有配置这两种设备中的一种,就会出现大量的数据包碎片。

票数 5
EN

Server Fault用户

发布于 2009-06-15 17:47:26

您编写的应用程序很可能与标准化应用程序(如Lustre )的I/O优化不一样。

您的代码中的性能瓶颈可能不会以1 1Gbps卡出现在机器和操作系统上,但是当卡吞吐量增加到10 1Gbps时,在所有其他参数不变(硬件和OS)的情况下,您的代码限制就变得突出了。

这是引用自维基百科光泽实现部分。

在Linux客户机上典型的Lustre安装中,一个Lustre文件系统驱动模块被加载到内核中,并且文件系统与任何其他本地或网络文件系统一样被挂载。客户端应用程序可以看到一个统一的文件系统,尽管它可能由数万个单独的服务器和MDT/OST文件系统组成。在一些大规模并行处理器(MPP)安装上,计算处理器可以通过将它们的I/O请求重定向到配置为Lustre客户端的专用I/O节点来访问有光泽的文件系统。这种方法在LLNL蓝基因安装中得到了应用。

你在用这部分吗?

另一种方法使用liblustre库为用户空间应用程序提供直接的文件系统访问。Liblustre允许数据在应用程序空间和光泽OSS之间直接移动,而不需要通过内核进行中间数据复制,从而提供从计算处理器到光泽文件系统的低延迟、高带宽访问。

票数 0
EN

Server Fault用户

发布于 2009-06-23 21:29:36

MTU对于在接口上保持一致是很重要的。

确保打开硬件TCP卸载(如果工作的话)。而且,所有nics上的固件都是最新的,因为在一些nics上,当它们被运出时,脚趾是非常坏的。我会测试脚趾和TSO等开关,看看它是否有任何区别。

您是否正在使用Broadcomm10G以太网,因为我们已经发现了真正的问题。

你用lnet测试器测试过你的网络吗?

您有多少OSS,以及通过文件系统获得了什么样的吞吐量?

票数 0
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/26024

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档