分析和诊断之间的区别(性能计数器和监控)

Difference between profiling and dignostics(performance counters and monitoring)

我正在致力于实现原型性能监控系统,我浏览了多个文档和资源来理解这个概念,但仍然对分析和诊断感到困惑。有人可以解释这两个术语、它们的关系以及 when/where 我们是否使用它们?

"Profiling"通常表示将系统中发生的事情(例如,性能监控事件)映射到进程,或映射到进程内的功能(或指令)。 Unix/Linux 世界中的分析工具示例包括 "gprof" 和 "oprofile"。 Intel 的 "VTune Amplifier" 是另一个常用的分析器。一些分析器仅限于查看单个进程的性能,而其他分析器(通常需要提升权限)在测量期间监控系统上运行的所有进程(包括内核)。

"Diagnostics" 不是我在性能监控中经常看到的术语,但从上下文来看我会假设这意味着在系统的整体运行中寻找 "trouble" 的证据。例如,https://github.com/TACC/tacc_stats的性能监控系统收集了每台服务器的硬件和软件性能监控数据。在 TACC 的操作中,数据被自动审查以寻找与已知性能不佳模式相关的各种试探法的匹配项(例如,所有内存访问都是对 2 插槽系统中的一个插槽进行的)。人类性能分析师也使用这些数据来响应用户查询,并汇总这些数据以按应用领域提供性能相关特征的概览。