我希望我的服务器能够处理超过1Mpps从一个10g卡。有可能吗?我有Ubuntu14.04内核3.11和16核心Xeon机器。似乎ksoftirqd在300 seems中成为瓶颈。
有关于如何调优服务器处理此负载的指南吗?
发布于 2016-02-06 07:20:06
您需要的是一个内核旁路引擎(这是我的意见中最简单的选择)。目前有两个流行的引擎这样做,并可以达到分组发送的线速率:
我把它们都用过了,经过一段时间的学习之后,我不得不说它们真的很方便,而且很容易使用
发布于 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并停止干扰所有这些中断。
https://serverfault.com/questions/638014
复制相似问题