为什么 Amazon EC2 i2.8xlarge 上的所有 32 个“cpus”有时都没有使用?

为什么 Amazon EC2 i2.8xlarge 上的所有 32 个“cpus”有时都没有使用?

运行 i2.8xlarge EC2 实例类型时,我预计 32 个 CPU 可用且可用。在一个实例上的一次测试中,我只看到 16 个 CPU 被利用。我曾经stress -c31 -t 30生成一些 CPU 负载,但只看到 32 个 CPU 中的 16 个被使用。具体来说,htop 显示 CPU 1-8 和 17-24 被 100% 消耗,而 CPU 9-16 和 25-32 处于空闲状态。在另一个 i2.8xlarge(相同操作系统)上,我确认htop所有 32 个 CPU 都在使用中。

lscpu输出:

架构:x86_64
CPU 操作模式:32 位、64 位
字节顺序:小端
CPU:32
在线 CPU 列表:0-31
每核线程数:2
每插槽核心数:8
插座:2
NUMA 节点:1
供应商 ID:GenuineIntel
CPU 系列:6
型号:62
步进:4
CPU频率:2500.086
保费:5264.79
虚拟机管理程序供应商:Xen
虚拟化类型:完整
L1d 缓存:32K
L1i 缓存:32K
L2 缓存: 256K
L3缓存:25600K
NUMA 节点 0 CPU:0-31

答案1

我们能够追踪问题所在。我们从一个使用较小实例(只有一个处理器插槽)创建的 AMI 启动。问题是numa=off/boot/grub/grub.conf 中有一个剩余的启动参数。删除此参数并重新启动实例后,我们能够利用所有 32 个 CPU(所有超线程)。

相关内容