CPU 核心频率、CPU 和内存利用率百分比、处理负载和温度如何影响应用程序性能?

CPU 核心频率、CPU 和内存利用率百分比、处理负载和温度如何影响应用程序性能?

我正在尝试对我的应用的两台机器进行基准测试。两台机器的主要区别在于外设连接,但处理器、内存和辅助存储相同。

我进行了四种不同类型的跑步:

  • 在两台机器上在室温下运行单个应用程序实例
  • 在两台机器上以高温运行单个应用实例
  • 在两台机器上在室温下运行两个应用程序实例
  • 在两台机器上以高温运行两个应用程序实例

在下图中,绿色条(浅绿色和深绿色)对应于运行 Ubuntu 20.02 的同一台机器 M1,蓝色条(浅蓝色和深蓝色)对应于运行 Ubuntu 18.04 的机器 M2。浅绿色条对应于 M1 运行我的应用程序的单个实例时的情况。深绿色条对应于 M1 运行我的应用程序的两个实例时的情况。浅蓝色条对应于 M2 运行我的应用程序的单个实例时的情况。深蓝色条对应于 M2 运行我的应用程序的两个实例时的情况。

我已经登录:

  • 来自 top 命令的 %Cpu 行的 %CPU 利用率
  • 我从 top 命令的 %Cpu 列中了解到了应用程序的 %CPU 和 %Mem 利用率

我正在运行与 MyApp 完全相同的配置,并且这些机器上没有运行其他用户进程,只有系统进程。

在此处输入图片描述

如果您查看“处理一个数据单位所需的平均时间”行,就会发现 M1 的性能始终优于 M2。此外,M1 和 M2 的性能在高温下都会降低。

但有几个令人困惑的观察结果令我表示怀疑:

  1. 对于这两种温度,M2 的 MyApp % CPU(浅蓝色条)大于 M1 的相应值。但是,处理一个数据单位仍然需要更多时间。当 CPU 利用率增加时,花费的时间难道不应该更少吗?

    室温下:

    M1 M2
    MyApp 的平均 CPU 百分比 321.75 421.2
    处理一个数据单元的平均时间 26.08 毫秒 43.13 毫秒

    高温时:

    M1 M2
    MyApp 的平均 CPU 百分比 318.97 426.05
    处理一个数据单元的平均时间 29.45 毫秒 38.67 毫秒
  2. 为什么单实例运行时 M2 的 Avg MyApp %Mem 比 M1 多:

    项目清单

    当双实例运行时,M2 的 Avg MyApp %Mem 小于 M1:

    在此处输入图片描述

  3. 平均 MyApp %CPU 和平均 MyApp %Mem 是评估 MyApp 性能的唯一合理指标吗?核心频率和总 %CPU 指标毫无用处吗?

    a. 核心平均频率毫无用处,因为核心频率会根据温度和功耗动态调节。但从图中可以看出,它们与 CPU 利用率无关。我这样说对吗?

    b. 平均总 %CPU 毫无用处,因为它与 MyApp 的 %CPU 利用率无关。我这样说对吗?

相关内容