首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何保证10 How网络设备在重载下的吞吐率

如何保证10 How网络设备在重载下的吞吐率
EN

Server Fault用户
提问于 2021-12-21 00:24:34
回答 1查看 838关注 0票数 2

在通过10 via网络接口连接到信号猎犬频谱分析器的服务器上,我很难确保所需的网络吞吐量。基本上,我可以获得良好的吞吐量时,只有无线电捕获进程正在运行,但当我运行其他进程,吞吐量开始下降。我使用的是PCIe以太网适配器和QNAP SFP+ 10 GbEThunderBolt3适配器。

当我在流模式下运行一个简单的python程序来从频谱分析器API轮询时,它在最大带宽(~800 to /S)上都工作得很好。当我这么做

代码语言:javascript
复制
$ stress --cpu 8 --io 8 --vm 8 --hdd 8

同时,它降低到大约600 of /S,我开始减少很多数据。

我尝试过的事情:

  1. 更新驱动程序
  2. 处理合并参数和许多伦理工具选项(MTU等)
  3. 通过cpu亲和力固定关闭超线程并将进程隔离到单个核(8中的8)
    • 这也包括将网络中断隔离到他们自己的核心(8中的7)。
    • 我还将核心调控器更改为“性能”,因此始终处于最大的freq
    • 我还试图关闭核心7和8的大多数其他中断,以防止它们减速,这是由netdata仪表板验证的。
    • 我基本上试过了这里里的所有东西

从本质上说,我知道它可以实时运行,因为当它本身被限制在两个核心时,它可以正常工作。但由于某些原因,即使其他核心不干扰CPU周期或网络IRQ,当内核1-6处于重载时,它们会大大减缓主进程的速度。

如果有帮助的话,我发现--vm 4选项对stress造成的影响最大,因此我怀疑它与内存分配有关,也许与网卡的DRAM接口有关。

我基本上是从Ubuntu20.04机器(应该是非常强大的)上从收音机中获取每一个数据包。有人有这样的应用经验吗?

编辑:我在这里复制了一些性能曲线:

这就是我所看到的效果

这是利用情况。核心6在高应力阶段和“刚捕获”阶段都是软质的100%。我尝试过将网络数据分成两个核(5和6),但是其中一个始终保持加载,而另一个似乎很明显,即使它们有类似数量的中断。

在压力测试运行期间,CPU 6上的软is的实际数量不幸地下降了。

这是我在CPU6软件上看到的效果。

此外,中断似乎保持相对不变,尽管它们在高压力时期变得不那么一致。

这是直线的网络速度,在这两个时期,它看起来也有点不一致。

我非常仔细地寻找异常(尽管netstat中有很多情节),看起来在高压力时期没有进程间的内存。这会导致问题吗?

如果有人需要更多的阴谋,请告诉我。我不能从这些推断问题,但我希望这是足够的信息,以提出潜在的解决方案。

再次感谢!

EN

回答 1

Server Fault用户

回答已采纳

发布于 2022-01-12 21:39:10

好了,我想我已经找到了我的问题的答案。我认为这里的关键图是“软”图。在正常情况下,我不认为应该这么高。

在分析过程中,我有一个小小的时间:基本上,由于我运行的是CUDA和其他一些繁琐的安装库,所以我在一个码头容器中运行所有这些(我知道你们都在说什么!)因为我没有为码头的收音机搞网络节目,所以我就没想过。是的,你猜到了,对接者网络增加了足够的处理能力,把我推到丢包的边缘。最后,我将network_mode设置为host以使用主机网络,这解决了我的问题。希望这能对别人有所帮助!

但这并不是全部--为了弄清楚这一点,我花了大量的时间来分析为什么我看到了我所看到的效果(感谢@AlexD提供的资源)。下面是运行API驱动程序的固定CPU 7的火焰图:

正如您所看到的,它在页面错误内存分配上花费了大量时间(这应该是另一条线索,尽管我没有在这里发布。在捕获过程中,轻微的记忆错误通过屋顶)。这就解释了为什么使用stress运行--vm 4会产生最糟糕的结果--这会导致内存争用,从而显着地减缓了驱动程序的运行速度。而且,在对它进行了一些测试之后,我认为它至少需要一个以上的核心(它只丢弃固定在core 7上的数据包,但是工作在6和7上)。在超频之后,我得到了更好的结果(但仍然不完美),这就解释了为什么。

所以你有了它:解释为什么一切都是这样的,用图表来支持它。我在无线电API的两个核上有大约60%的利用率,而且它在获取所有数据包方面相当稳定(另一个核心处理软see的速度约为10%,低于上面图表中的95% )。我觉得有点傻,没有想到码头拖慢了我,但更好的解决了这一切。希望这篇文章能帮助其他人!

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

https://serverfault.com/questions/1087852

复制
相关文章

相似问题

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