运行一个i2.8xlarge EC2实例types,我期望32 cpu可用和可用。 在一次testing中,我只看到了16个cpus。 我使用stress -c31 -t 30来产生一些cpu负载,但是只使用了32个cpus中的16个。 具体来说,htop显示cpus 1-8和17-24被100%占用,cpus 9-16和25-32空闲。 在不同的i2.8xlarge(相同的操作系统)我用htop证实,所有32 cpu被使用。
lscpu输出:
架构:x86_64 CPU操作模式:32位,64位 字节顺序:Little Endian CPU(s):32 在线CPU列表:0-31 每个核心的线程数:2 核心(s)每个sockets:8 套接字:2 NUMA节点:1 供应商ID:GenuineIntel CPU系列:6 型号:62 步进:4 CPU MHz:2500.086 BogoMIPS:5264.79 pipe理程序供应商:Xen 虚拟化types:完整 L1dcaching:32K L1icaching:32K 二级caching:256K 三级caching:25600K NUMA node0 CPU(s):0-31
我们能够追查到这个问题。 我们从一个小实例(只有一个处理器插槽)创build的AMI启动。问题是/boot/grub/grub.conf中有一个剩余的numa=off引导参数。 一旦这个参数被删除,实例重新启动,我们能够利用所有32 cpus(所有hyperthreads)。