【发布时间】:2018-05-25 23:53:26
【问题描述】:
在 AWS 上,我的 EC2 实例的 CPU 利用率下降到 75%,有时甚至下降到 50%。
我知道 AWS 有一个设置让 GPU 使用最大内核数。 AWS EC2 是否在任何地方都有此 CPU 设置?
【问题讨论】:
-
这个问题似乎描绘了对 CPU、内核、超线程 (vCPU) 和线程实际工作方式的误解。您的代码将始终使用尽可能多的 CPU,因为它需要并且能够使用,并且没有办法在向上的方向上改变它,因为它已经是最大的,根据定义。例如,在具有 4 个 vCPU 的机器上,您必须始终有至少 4 个线程在 CPU 上运行和等待,以维持 100% 的利用率。 3 次运行和 1 次阻塞在其他东西上(比如 I/O)意味着最大约为 75%。您的工作量是多少?为什么要高使用率而不是低使用率?
-
我知道 CPU 和线程是如何工作的。 AWS 不会将所有设置都设置为最大值。他们做什么他们觉得是安全的。好吧,我不想要安全。我想保证,如果我为 x 核心付费。我的程序可以随时使用所有 x 内核。 AWS 不默认使用所有 GPU 内核。所以这就引出了问题。它在CPU上做同样的事情吗?我见过实用程序。从 100%(8 核)开始。然后下降到 75%(6 核)。并保持在 6。直到我重新启动,然后它恢复 100%。
-
当您的使用率为 75% 时,剩下的时间都花在了哪里?它必须是空闲、用户、系统、niced、iowait、硬件/软件中断或被盗周期的某种组合,所有这些都加起来为 100%,所以问题是......周期在哪里?它们必须花在某个地方,例如,如果在工作负载保持不变的情况下降低了内核的时钟速度,则利用率统计数据会上升(最高可达 100%),而不是下降。这里没有与 GPU 类似的东西。
标签: amazon-web-services amazon-ec2