“Max Cpu” 为 100% 正常吗?

“Max Cpu” 为 100% 正常吗?

下面是来自托管我们应用程序的 Azure“应用服务计划”的两张图片。我们最近尝试扩大规模,但并没有解决下面出现的问题。

我们的“最大 CPU”全天都达到峰值,每天都如此……但这是最大聚合。这些是瞬时峰值。同时,我们的 CPU 百分比平均聚合是正常的(第二张照片)。

是否预计会出现最大 CPU 瞬态峰值,如第一张图片所示,或者这是不正常的?

谢谢你!

最大 CPU 最大 CPU

平均 CPU 平均 CPU

答案1

这是聚合规则,而不是实际使用情况。收集指标时,它们(对于 CPU)只有一个指标:当前 CPU 负载。如果每分钟收集 6 次指标,则有 6 个值。显示大间隔时,通常不会显示所有数据,而是执行聚合。如果聚合间隔缩短到 10 分钟,则此间隔内的所有数据都会折叠成一个数字。有不同的函数可以做到这一点:最小值、最大值、平均值、中位数等。

一种方法是取平均值(第二个图表)。另一种方法是显示该间隔内发现的最大峰值(第一个图表)。平均值聚合往往会隐藏峰值,最大值聚合往往会不合理地增加峰值使用率。如果您有 10 分钟的聚合窗口,并且在此期间某个进程在 0.1 秒内消耗了 100%,并且该 0.1 秒是收集指标的时刻,那么您将有 10 分钟的 100% CPU 使用率间隔(当使用“最大”聚合时)。

答案2

这在很大程度上取决于其上运行的应用程序。如果它正在执行 CPU 密集型工作,它可能会使 CPU 使用率尽可能高。升级硬件后您应该会看到的不同之处。它正在执行的任务将更快地完成。

我对您尝试运行的应用程序一无所知。因此,我不知道它是在这些峰值期间似乎正常运行的多线程应用程序,还是在峰值期间似乎挂起的单线程应用程序?在第一种情况下,我不会太在意。但在第二种情况下,我可能会考虑进一步升级 CPU,或者,如果我可以访问应用程序的源代码,尝试看看是否有可能优化 CPU 密集型任务。

相关内容