当我的机器的性能发生变化时,如何测量应用程序的加速?

当我的机器的性能发生变化时,如何测量应用程序的加速?

我开发了一个运行在 Linux 上的单片程序,它占用大量内存。我们在大多数大内存机器上调整这个程序的速度时遇到了麻烦,因为性能不稳定,每次运行之间的差异高达 15%。例如,一台机器有 2TB 内存和 80 个 Xeon E7-4870 (2.4Ghz) 处理器。我们如何确定这种变化的来源和/或提高测量的准确性,以便我们能够确定哪些加速有效以及加速多少?它运行的是 SUSE11。

到目前为止,我们尝试过以下方法:1) 在 BIOS 中禁用 TurboBoost。2) 多次运行该程序并取平均值。这种方法有效,但需要数周时间才能消除噪音。

答案1

如果没有更具体的细节,回答起来会有点困难:应用程序的类型(I/O、计算密集型、网络应用程序)、正在运行的附加进程等等。

但我会提出一些一般性的建议:

-) 使用轮廓尝试了解系统(和特定应用程序)大多数时间处于什么位置。此工具非常非常强大,即使对于复杂的应用程序,它的输出推断起来有点费劲。

-) 使用iostat、iotop、pidstat、vmstat等工具尝试分析I/O部分或者内存消耗/分页等方面是否存在瓶颈。

相关内容