首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CentOS中的网卡/网络性能优化

CentOS中的网卡/网络性能优化
EN

Stack Overflow用户
提问于 2018-10-29 13:47:38
回答 1查看 788关注 0票数 2

我们运行一个基于UDP的应用服务器,在其中我们期望高流量。因此,我正在对NIC进行调优,以获得高吞吐量(降低一些延迟)的最佳性能。

为了进行测试,我使用了以下配置的2台机器。

机器详细信息

代码语言:javascript
复制
CPU : 40core
Threads per core: 2
Cores per socket : 2
NUMA node : 2
Model name : Intel(R) Xenon(R ) CPU E5-2630v4
CPU MHx: 2199.841
NUMA 0: 0-9, 20-29
NUMA 1: 10-19, 30-39
RAM: 128GB

网络详细信息:

代码语言:javascript
复制
Driver: ixgbe
Version : 4.4.0-k-rh7.3
10G capable

在进行简单的负载测试时,我发现接收速率(数据包/秒)与发送方不一样。

(通过SAR命令观察数据)发件人:(sar -n UDP 1) odgm/s

代码语言:javascript
复制
1098825.00
1097993.00
1098103.00

接收机: Idgm/s

代码语言:javascript
复制
622742.00
616321.00
649075.00

从上面的内容,您可以看到发送方和接收方数据报数据包之间的区别。

丢包观察:

伦理工具,netstat,sar -在所有这些工具中观察到的统计数据,这里没有丢包的报告.

当前已调优:(通过此调优,我能够在接收端达到630 K/秒的最大值)

代码语言:javascript
复制
IRQBALANCE : disabled
CPU affinity   : manually distributed (each rx-tx queue / CPU)
Interrupt coalesce : rx-usecs 15
Flow control : on
Ring Buffer : rx 512
Rx Queue : 40
rmem_default = 16777216
rmem_max = 16777216

Rest都是默认值Edit1:我更改为繁忙的轮询- 50,并且能够在整个过程中取得更好的效果,但不一致。

  1. 为什么发送者和接收者之间的比率有差异?还有哪些其他NIC/OS参数可以作为发送方进行调优以达到相同的吞吐量?
  2. 我用伦理工具观察到的一件奇怪的事情是,在测试过程中,“rx_no_dma_resources”这个词一直在快速增长。有什么响声吗?
  3. 尽管我在/proc/中断和/proc/net/softnet_stat中禁用了“irqbalance”,但中断的分布并不相等。
  4. 总的来说,我的最终目标是以最小的分组丢失实现最佳吞吐量。
EN

回答 1

Stack Overflow用户

发布于 2018-10-31 14:08:57

我没有你所有的问题的答案,也没有具体的中心。这是我以前在基于中断的数据包接收方面的经验。

正如您所提到的,您需要最好的吞吐量,基于中断的方法并不是一种方法。在我们所做的一个项目中,我们发现基于中断的方法由于上下文切换而具有巨大的开销,因此丢弃了大量的数据包。我建议您使用低轮询频率的轮询。尽管它会导致更多的执行开销。您将能够获得更好的吞吐量。

我希望我的建议对你的项目有帮助。

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

https://stackoverflow.com/questions/53046896

复制
相关文章

相似问题

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