我一直在研究一系列自动负载测试脚本,我注意到当平均下来时,在 Heroku dyno(在本例中为 Hapi. js 服务器立即返回回复),尽管测功机报告自己有四个可用的 CPU。1 和 2 进程之间的差异是巨大的,吞吐量增加了近 100%。
我的猜测是 Intel CPU/超线程报告的内核数量是实际可用内核的两倍,并且 Node 并没有真正受益于调度的好处,但关于 Heroku dynos 规格的可用信息似乎很少。这是准确的,还是有其他原因在没有 I/O 的服务器上的 2 个线程上性能上限?
我一直在研究一系列自动负载测试脚本,我注意到当平均下来时,在 Heroku dyno(在本例中为 Hapi. js 服务器立即返回回复),尽管测功机报告自己有四个可用的 CPU。1 和 2 进程之间的差异是巨大的,吞吐量增加了近 100%。
我的猜测是 Intel CPU/超线程报告的内核数量是实际可用内核的两倍,并且 Node 并没有真正受益于调度的好处,但关于 Heroku dynos 规格的可用信息似乎很少。这是准确的,还是有其他原因在没有 I/O 的服务器上的 2 个线程上性能上限?
这是由于几个原因:
如果你正在做 CPU 密集型的工作,你需要在测功机上水平扩展。如果您正在做 IO 密集型的工作,那么随着时间的推移,您应该可以很好地垂直缩放到大型测功机 =)
更新:要在此处添加更多信息,这是虚拟化的工作方式。EC2 机器(和任何 linux 服务器)将始终报告核心机器的 CPU 总数,而不是 VM。希望有帮助