linuxtop
命令是否占系统使用的所有 CPU 时间?
我试图了解 Linux 系统上 IPsec 处理的瓶颈。在一个特定的例子中,系统是 AWS 中的虚拟机,我们正在测试 IPsec 吞吐量。我们了解 AWS 对每个流施加的限制,但并未达到该限制。据报道,ethtool
IPsec 没有硬件卸载。如果没有 IPsec,我们可以达到显着更高的吞吐量(我们达到了 AWS 为实例类型公布的限制。)如果使用 IPsec,吞吐量会显着降低,这是可以理解的,但我们想确切地知道是什么导致了限制。
因此,我预计对于 IPsec,吞吐量受到虚拟机上 CPU 使用率(包括内存等待)的限制。在我测试的情况下,我们有 32 个 vCPU,即使有超过 32 个流,使用top
然后按1
获取每个 vCPU 的输出,没有一个 vCPU 的利用率非常高;大多数闲置率超过 50%。
一位队友建议,也许top
不会计算所有 vCPU 使用情况,也许会忽略一些“核心”linux 内核 CPU 使用情况。这可能吗?
顺便说一句,随着流数量的增加,我们看到更高的吞吐量,最高可达 512(不更改 ulimit 的最大值)。随着 IPsec 隧道数量的增加,我们还看到更高的吞吐量,比增加流数量的吞吐量更高。对我来说,这意味着状态可能ip xfrm
与 vCPU 绑定——但我们在top
结果中没有看到任何明确的证据,因为没有一个 CPU 达到非常高的使用率。大部分的用法都在si
(软件中断)一栏。