Amazon ec2 pm2启动-我在12个vcpu上的最大运行购买我的ec2只有8个vcpu
我刚刚将AWS EC2实例从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 :
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计数时似乎做错了什么。