我们创建了一个具有 2 个 VCPU 和 4 GB RAM 的 ECS/Fargate 容器,并在其中运行 NodeJS 服务器。当我们使用 JMeter 进行负载测试时,VCPU 达到最大值 60%,内存利用率接近 10%。即使我们使用 JMeter 增加负载,情况也一样。
CPU 最高达到 60% 并且停止运行,可能是什么原因造成的?
答案1
CPU 最高达到 60% 并且停止运行,可能是什么原因造成的?
CPU没有达到60%,而是达到了100%。
当您的应用程序是单线程的并且限制因素是 CPU 时,CPU 1 将以 100% 运行。
将 100% 除以 CPU 总数,得到二您将获得±50% 的整体系统负载。
现在通常第二个 CPU 不会完全空闲,除了您正在测试的应用程序之外,还会有一些其他进程在运行,这可能会增加第二个 CPU 的负载,比如说 20%。
然后您将获得以下系统负载:
100 + 20
-------- = 60%
2
(请注意,这只是一个完全随机的猜测,您的问题可能比如何计算负载的人工制品更有趣。)