首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >接收多个UDP数据包& ksoftirqd加载

接收多个UDP数据包& ksoftirqd加载
EN

Server Fault用户
提问于 2014-10-18 16:15:59
回答 2查看 3.5K关注 0票数 2

我希望我的服务器能够处理超过1Mpps从一个10g卡。有可能吗?我有Ubuntu14.04内核3.11和16核心Xeon机器。似乎ksoftirqd在300 seems中成为瓶颈。

有关于如何调优服务器处理此负载的指南吗?

EN

回答 2

Server Fault用户

发布于 2016-02-06 07:20:06

您需要的是一个内核旁路引擎(这是我的意见中最简单的选择)。目前有两个流行的引擎这样做,并可以达到分组发送的线速率:

  • DPDK -它支持你的名片 (Intel 82599),并且应该在您的操作系统上工作。
  • PF_环ZC -也支持您的卡,并应在您的操作系统上工作。

我把它们都用过了,经过一段时间的学习之后,我不得不说它们真的很方便,而且很容易使用

票数 1
EN

Server Fault用户

发布于 2015-07-23 15:12:45

这里有一篇很方便的文章,尽管这是9个月前被问到的:

https://blog.cloudflare.com/how-to-receive-a-million-packets/

基本上答案是肯定的,很容易。现在,我已经有一个UDP服务器接收1.08Mpps,在一个20@2.6Ghz核心Xeon机器上英特尔82599 10 G NIC。

我的配置基本上是:Ubuntu14.04,带有3.13.0-57-低延迟(LL使一个不同)的isolcpus内核标志,不包括核心10-19 (一个NUMA节点) UDP服务器处理任务集到由核心11 RPS服务的核心10 RX队列硬件中断,用于映射到核心12的RX队列。

核心10的CPU使用率为100%,核心11的硬件中断服务为45%,核心12的CPU使用率为100% ksoftirqd,所有其他核心的使用率都可以忽略不计。

我已经尝试了使用100%的所有20个核心,并实现了大约7 more,但我相信它可以得到更多的优化。

当然,您可以使用DPDK并停止干扰所有这些中断。

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

https://serverfault.com/questions/638014

复制
相关文章

相似问题

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