这是我到目前为止所做的:

使用更多Rx / Tx缓冲区可以提升默认性能.我在每个适配器上将RSS队列设置为4,并将第二个端口上的RSS cpu指定为0以外的值(在我使用的PC上是16,有16个核心,32个HT).

从观看ProcessExplorer,我受到cpu处理大量传入中断的能力的限制,即使启用了RSS也是如此.我在2.x模式下使用PCIe x8(电气)插槽.两个适配器中的每一个都连接5GT /秒x8总线.

操作系统响应无关紧要,I / O吞吐量确实如此.我受限于客户无法处理Jumbo数据包.

我接下来应该尝试哪些设置?

详细信息:双Xeon-E5 2665,32 GB RAM,RAID0中的8个SSD(用于NIC性能验证的RAMDrive),1TB数据将通过IIS / FTP从400个客户端移动,尽快.

回应评论:

实际读取吞吐量为650 MB /秒,通过一对组合的10Gb /秒链路进入RAM驱动器

防病毒和防火墙已关闭,AFAICT. (在这种情况下,我对PC上安装的内容有相当好的控制.我怎么能确定没有过滤器会降低性能?我必须跟进,好点.)

在Process Explorer中,我看到cpu继续运行的时间段(红色,内核时间),但网络和磁盘I / O已停止

Max RSS处理器的默认值为16

X520-DA2设备的两个实例都支持消息信号中断,MessageNumberLimit设置为18.这是我在低端桌面卡上看到的内容

高性能NIC的一个问题是现代PC架构在跟上时会遇到一些麻烦.但是,在你的情况下,这不是问题所在.让我解释.

cpu必须做很多处理TCP数据包的工作.这会影响吞吐量.在您的情况下,限制的不是网络硬件,而是服务器使网络链接饱和的能力.

在最近的时间里,我们已经看到处理从cpu移动到NIC,就像校验和卸载一样.英特尔还增加了一些功能,有助于进一步降低负载.这很酷,我确信所有优化功能都已打开.

正如你所提到的,巨型帧 – 实际上有助于提高吞吐量.但没有RDMA那么多.

大多数10GBit以太网硬件都有一个非常好的未充分利用的功能,称为RDMA或远程直接内存访问.它允许NIC通过网络执行内存到内存副本,而无需cpu的干预.好吧,好的,cpu告诉NIC要做什么,然后NIC完成剩下的工作.问题是,它还没有被使用.但它已经到了那里.显然,在最新版本的Microsoft Windows Server 2012中,它们有一个名为SMB Direct的东西.它使用RDMA.因此,如果您想增加吞吐量,则需要使用它.

您是否可以将一些测试硬件组装在一起并将其安装到那里以查看其性能如何?

顺便说一句,我不确定你是否会在10Gbit上看到这么多,但是快速RAM有助于RDMA特别是56Gbit Infiniband.通常,最好使用服务器支持的最快RAM.

另请注意我在上面提到的SMB Direct链接上的评论:

You should not team RDMA-capable network adapters if you intend to use
the RDMA capability of the network adapters. When teamed,the network
adapters will not support RDMA.

更新:由于某种原因,看起来并非所有10GBit NIC都支持RDMA.
因此,请先检查模型的功能.

我的另一个想法是用于进行测试的协议类型可能会影响结果.即TCP开销之上的协议开销.我建议你研究一下可以测试的东西,而不用触摸硬盘,如iperf.某处有一个Windows端口.

windows-server-2008-r2 – 如何在没有Jumbo数据包的情况下提高Intel X520-DA2 10Gb网卡吞吐量的更多相关文章

  1. 适用于Android的离线(手动)安装Intel x86 Atom System映像

    我想安装Intelx86AtomSystemImage,因为我的模拟器速度太慢了.每次我尝试从Androidsdk管理器安装它时,我都收到此消息:–获取URL:https://dl-ssl.google.com/android/repository/sys-img/x86/addon-x86.xml验证XML:https://dl-ssl.google.com/android/repository

  2. android – Intel HAXM 6.0.4与MacOS不兼容

    或者有其他选择吗?解决方法已经有报道的问题:>https://code.google.com/p/android/issues/detail?

  3. centos – 调整NFS客户端/服务器堆栈

    只是为了澄清,你通过单个Gb以太网连接获得50MB/秒的NFS?并且主机服务器正在运行安装了VMwareServer的CentOS,而后者又运行7个虚拟机?有没有特别的原因你已经将CentOS和VMwareServer结合起来,而不是VMwareESXi这是一个更高性能的解决方案?

  4. CentOS调整等效于Debian

    运行一些系统,其中一些是Debian,它们很棒.我在CentOS盒子上安装了tuned并设置了吞吐量.我搜索了整个谷歌,只发现了一些关于通过发布/更改多个sysctl属性和缓冲区来调整内核以获得更好的TCP性能的文章.有没有人知道或找到Debian的调优工具或Debian的调优等效工具所以我可以调整系统的吞吐量?或者我应该通过调整内核的TCP性能找到的两篇主要文章?

  5. CentOS没有检测到Intel 10G(ixgbe)接口

    注意:这是在另一个全新安装的CentOS6.5服务器上运行的相同NIC模型:dmesg输出:这是e1000的参数没有关于允许坏校验和的参数!!!

  6. CentOS 6路由器/防火墙似乎限制了吞吐量

    TL;DRCentOS6NAT路由器/防火墙背后是120Mbps电缆调制解调器连接在最近的更新后,似乎将吞吐量限制在30Mbps安全“硬化”.在更新和加固之前,我获得了90Mbps.我已经检查了cpu和网络使用情况,但这些似乎都不是限制因素.tc没有显示正在进行的任何流量整形我不知道如何进一步解决这个问题.细节我有一个CentOS6系统作为NAT路由器/防火墙运行Comcast电缆调制解调器,也作

  7. CentOs7.4 网卡启动:Job for network.service failed

    终于找到了彻底解决网卡报错的方法。请关闭虚拟机的selinux和NetworkManager功能。重新添加一个新的。如果不一致在新网卡配置文件中改成ifconfig的mac地址。由于系统字符识别原因新生成的网卡配置文件可能是ifcfg***1结尾的文件。然后删除ifcfg###13.配置新网卡的内容servicenetworkrestart查看是否还有错误。正常情况下错误消失。

  8. windows – 在许多机器上将所有网卡更改为自动/自动

    由于网络设备的变化,我可能需要将一堆机器NIC设置回自动协商.什么是自动化的最佳方法?我在想通过组策略或SCCM推出一个Autoit编译的exe.如果您有示例,请发布您的脚本.我不确定我所打的所有系统都会有相同的NIC,所以将所有已知卡重置为auto的东西都会很棒.谢谢!

  9. windows-server-2008-r2 – 查找哪个网络连接属于哪个物理网卡端口?

    在Windows/WindowsServer中,如果我有一个物理网卡上有两个或四个端口,是否有可编写脚本/编程方式来确定哪个“网络连接”(例如“本地连接3”)是与哪个物理网卡端口相关联?我快速浏览了win32_networkadapter和win32_networkadapterconfiguration类,但没有看到任何立即有用的东西.最大的问题是Windows不会按任何特定顺序枚举已安装的NI

  10. Ubuntu中的两套网络连接管理方式

    第二套方案使用于有桌面的环境,特别是笔记本,搬来搬去,网络连接情况随时会变的。当managed设置成true时,/etc/network/interfaces,则不生效。这是因为ifdown会分析目前网络接口参数是否与文件ifcfg-ethX的配置参数是否一致,不一致的话,就会放弃操作。因此用ifconfig修改完后,需要用ifconfigethXdown才能关闭该接口。但是使用ifup/ifdown脚本或特定的网络接口比直接使用ifconfig命令要好一些,这是因为脚本可以认真查看并处理与某一个特定接口

随机推荐

  1. static – 在页面之间共享数据的最佳实践

    我想知道在UWP的页面之间发送像’selectedItem’等变量的最佳做法是什么?创建一个每个页面都知道的静态全局变量类是一个好主意吗?

  2. .net – 为Windows窗体控件提供百分比宽度/高度

    WindowsForm开发的新手,但在Web开发方面经验丰富.有没有办法为Windows窗体控件指定百分比宽度/高度,以便在用户调整窗口大小时扩展/缩小?当窗口调整大小时,可以编写代码来改变控件的宽度/高度,但我希望有更好的方法,比如在HTML/CSS中.在那儿?

  3. 使用Windows Azure查询表存储数据

    我需要使用特定帐户吗?>将应用程序部署到Azure服务后,如何查询数据?GoogleAppEngine有一个数据查看器/查询工具,Azure有类似的东西吗?>您可以看到的sqlExpressintance仅在开发结构中,并且一旦您表示没有等效,所以请小心使用它.>您可以尝试使用Linqpad查询表格.看看JamieThomson的thispost.

  4. windows – SetupDiGetClassDevs是否与文档中的设备实例ID一起使用?

    有没有更好的方法可以使用DBT_DEVICEARRIVAL事件中的数据获取设备的更多信息?您似乎必须指定DIGCF_ALLCLASSES标志以查找与给定设备实例ID匹配的所有类,或者指定ClassGuid并使用DIGCF_DEFAULT标志.这对我有用:带输出:

  5. Windows Live ID是OpenID提供商吗?

    不,WindowsLiveID不是OpenID提供商.他们使用专有协议.自从他们的“测试版”期结束以来,他们从未宣布计划继续它.

  6. 如果我在代码中进行了更改,是否需要重新安装Windows服务?

    我写了一个Windows服务并安装它.现在我对代码进行了一些更改并重新构建了解决方案.我还应该重新安装服务吗?不,只需停止它,替换文件,然后重新启动它.

  7. 带有双引号的字符串回显使用Windows批处理输出文件

    我正在尝试使用Windows批处理文件重写配置文件.我循环遍历文件的行并查找我想要用指定的新行替换的行.我有一个’函数’将行写入文件问题是%Text%是一个嵌入双引号的字符串.然后失败了.可能还有其他角色也会导致失败.如何才能使用配置文件中的所有文本?尝试将所有“在文本中替换为^”.^是转义字符,因此“将被视为常规字符你可以尝试以下方法:其他可能导致错误的字符是:

  8. .net – 将控制台应用程序转换为服务?

    我正在寻找不同的优势/劣势,将我们长期使用的控制台应用程序转换为Windows服务.我们为ActiveMQ使用了一个叫做java服务包装器的东西,我相信人们告诉我你可以用它包装任何东西.这并不是说你应该用它包装任何东西;我们遇到了这个问题.控制台应用程序是一个.NET控制台应用程序,默认情况下会将大量信息记录到控制台,尽管这是可配置的.任何推荐?我们应该在VisualStudio中将其重建为服务吗?我使用“-install”/“-uninstall”开关执行此操作.例如,seehere.

  9. windows – 捕获外部程序的STDOUT和STDERR *同时*它正在执行(Ruby)

    哦,我在Windows上:-(实际上,它比我想象的要简单,这看起来很完美:…是的,它适用于Windows!

  10. windows – 当我试图批量打印变量时,为什么我得到“Echo is on”

    我想要执行一个简单的批处理文件脚本:当我在XP中运行时,它给了我预期的输出,但是当我在Vista或Windows7中运行它时,我在尝试打印值时得到“EchoisOn”.以下是程序的输出:摆脱集合表达式中的空格.等号(=)的两侧可以并且应该没有空格BTW:我通常在@echo关闭的情况下启动所有批处理文件,并以@echo结束它们,所以我可以避免将代码与批处理文件的输出混合.它只是使您的批处理文件输出更好,更清洁.

返回
顶部