Linux 中的 IPsec 瓶颈是什么?

Linux 中的 IPsec 瓶颈是什么?

我正在尝试比较千兆以太网中连接的两台主机之间的几种网络安全协议的性能。

我的目标是看看我是否可以使带宽饱和,如果不能,限制因素是什么。

  • 使用SSL,我可以达到981 MBit/s,因此以太网链路显然是限制因素;
  • 使用 SSH,我只能达到 750 MBit/s,但我的一个核心已达到 100% 使用率。由于SSH是单线程的,CPU是限制因素;
  • 使用 IPsec,我读取了大约 500 MBit/s,但我的所有核心都没有达到 100%(它们都低于 50%)。

所以我的问题是:为什么 IPsec 不能达到更高的带宽?

这两台主机运行 Debian Wheezy 和 Strongswan for IPsec。

答案1

我想知道是否是因为在加密货币中插入了人为等待或睡眠。在我看来,这不太可能,但是......

http://www.tau.ac.il/~tromer/acoustic/

无法将其作为评论发布,这样会更合适。

答案2

这有很多因素。网卡对主板的影响超出了您的想象。任何设置的指令都可能穿过电线并影响驱动器系统的一部分并成为您的瓶颈。您可以使用单板 1200mhz 单核并调整硬件以击败四核 3600mhz。这确实是一个特定于硬件的问题。

他们如何做到这一点?像这样的东西 http://www.ixiacom.com/products/ixn2x 这就是价值 16.5 万美元的“我会打败你”设备。即2 gigs 错误流量进入1gig 管道。一旦你开始攻击系统并破坏一些东西,你的瓶颈就会“暴露出来”。温习您的 GDB 技能!

每个系统都有不同的方法来解决问题。有些主板的技术限制可能会限制您的能力。

答案是不明确的,因为解决方案是不明确的。我可以立即想到 20 种不同的可能性,包括根据操作系统版本的不同而不同的分页。

答案3

可能在任何特定时间,两个核心中只有一个是饱和的,但平均而言,它们看起来都在 50% 左右(因为内核随机为两个核心分配一个单线程 IPsec 进程;但是据我所知注意到 Linux(与 Windows 不同)通常会尝试在同一核心上保留一个线程)。

在某些短时间内,IPSec 也可能会等待网络,这与传输速率缓慢一起,将是缓冲不良的迹象。

此外,压缩(如果有)和协议开销也可能会影响您的测试。

相关内容