我正在尝试对我的应用的两台机器进行基准测试。两台机器的主要区别在于外设连接,但处理器、内存和辅助存储相同。
我进行了四种不同类型的跑步:
- 在两台机器上在室温下运行单个应用程序实例
- 在两台机器上以高温运行单个应用实例
- 在两台机器上在室温下运行两个应用程序实例
- 在两台机器上以高温运行两个应用程序实例
在下图中,绿色条(浅绿色和深绿色)对应于运行 Ubuntu 20.02 的同一台机器 M1,蓝色条(浅蓝色和深蓝色)对应于运行 Ubuntu 18.04 的机器 M2。浅绿色条对应于 M1 运行我的应用程序的单个实例时的情况。深绿色条对应于 M1 运行我的应用程序的两个实例时的情况。浅蓝色条对应于 M2 运行我的应用程序的单个实例时的情况。深蓝色条对应于 M2 运行我的应用程序的两个实例时的情况。
我已经登录:
- 来自 top 命令的 %Cpu 行的 %CPU 利用率
- 我从 top 命令的 %Cpu 列中了解到了应用程序的 %CPU 和 %Mem 利用率
我正在运行与 MyApp 完全相同的配置,并且这些机器上没有运行其他用户进程,只有系统进程。
如果您查看“处理一个数据单位所需的平均时间”行,就会发现 M1 的性能始终优于 M2。此外,M1 和 M2 的性能在高温下都会降低。
但有几个令人困惑的观察结果令我表示怀疑:
对于这两种温度,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 毫秒 为什么单实例运行时 M2 的 Avg MyApp %Mem 比 M1 多:
当双实例运行时,M2 的 Avg MyApp %Mem 小于 M1:
平均 MyApp %CPU 和平均 MyApp %Mem 是评估 MyApp 性能的唯一合理指标吗?核心频率和总 %CPU 指标毫无用处吗?
a. 核心平均频率毫无用处,因为核心频率会根据温度和功耗动态调节。但从图中可以看出,它们与 CPU 利用率无关。我这样说对吗?
b. 平均总 %CPU 毫无用处,因为它与 MyApp 的 %CPU 利用率无关。我这样说对吗?