Amazon ec2 pm2启动-我在12个vcpu上的最大运行购买我的ec2只有8个vcpu

Amazon ec2 pm2启动-我在12个vcpu上的最大运行购买我的ec2只有8个vcpu,amazon-ec2,pm2,Amazon Ec2,Pm2,我刚刚将AWS EC2实例从t2.xlarge升级到t2.2xlarge,因此我们的实例现在有8个vCPU。重新启动服务器后,我运行命令pm2 start src/app.js-I max-f,令我惊讶的是,我的应用程序现在不是在8vCPU上运行,而是在12VCPU上运行。至少显示的是pm2列表。这里到底发生了什么 这是cat/proc/cpuinfo的输出 processor : 7 vendor_id : GenuineIntel cpu family :

我刚刚将AWS EC2实例从
t2.xlarge
升级到
t2.2xlarge
,因此我们的实例现在有8个vCPU。重新启动服务器后,我运行命令
pm2 start src/app.js-I max-f
,令我惊讶的是,我的应用程序现在不是在8vCPU上运行,而是在12VCPU上运行。至少显示的是
pm2列表
。这里到底发生了什么

这是
cat/proc/cpuinfo的输出

processor       : 7
vendor_id       : GenuineIntel
cpu family      : 6
model           : 79
model name      : Intel(R) Xeon(R) CPU E5-2686 v4 @ 2.30GHz
stepping        : 1
microcode       : 0xb000038
cpu MHz         : 2300.118
cache size      : 46080 KB
physical id     : 0
siblings        : 8
core id         : 7
cpu cores       : 8
apicid          : 14
initial apicid  : 14
fpu             : yes
fpu_exception   : yes
cpuid level     : 13
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov                 pat pse36 clflush mmx fxsr sse sse2 ht syscall nx pdpe1gb rdtscp lm constant_tsc                 rep_good nopl xtopology cpuid pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 x                2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_                lm abm cpuid_fault invpcid_single pti fsgsbase bmi1 avx2 smep bmi2 erms invpcid                 xsaveopt
bugs            : cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf mds                 swapgs itlb_multihit
bogomips        : 4600.13
clflush size    : 64
cache_alignment : 64
address sizes   : 46 bits physical, 48 bits virtual
power management:

我们在评论中讨论的内容摘要

cat/proc/cpuinfo
的输出告诉我们,该实例实际上有8个CPU核,我们可以从这一行中看到:

cpu cores       : 8
这告诉我们AWS正在为您提供所需的服务:-)

我对pm2一无所知,但是在
pm2 start src/app.js-I max-f
中的
-I max
告诉pm2启动与CPU内核数量相同的工作进程

当您更改实例类型时,CPU内核检测似乎有点混乱,它选择将新的8个内核添加到它已经知道的4个内核中,现在将为您提供12个进程

作为一种解决方法,您可以显式地将工作进程数设置为8,如下所示:

pm2 start src/app.js -i 8 -f

你确定这是12vCPU,而不仅仅是12个线程/进程吗?请包括
cat/proc/cpuinfo
@Maurice添加了输出。老实说,我不知道那是什么。但在此之前,当我的实例是带有4vcpu的t2.xlarge时,当我运行pm2列表时,它只列出了4个正在运行的应用程序。因此,我希望现在只有8个应用程序在运行。正如您从
cpu核心:8
中看到的,该实例有8个VCPU,这意味着pm2在试图找出cpu计数时似乎做错了什么。