OProfile及其祖先DPCI是为概要分析生产系统开发的。这些 *** 作的开销非常低,而且它们可以对
整个系统 (包括内核)进行概要分析,因此您可以在VM , 内核和库中发现性能问题。
要回答您的问题:
- 开销: 这些是 采样的 探查器,也就是说,它们以一定的时间间隔生成计时器或性能计数器中断,并查看当前正在执行的代码。他们使用它来构建您在哪里花费时间的直方图,并且在合理的采样间隔内开销非常低(他们声称为1-8%)。
查看此图,了解OProfile的采样频率与开销的关系。如果默认设置不符合您的喜好,则可以调整采样频率以降低开销。
在生产中的用法: 使用OProfile的唯一警告是您需要将其安装在生产计算机上。我相信自RHEL3以来,Red Hat中已经提供了内核支持,而且我很确定其他发行版也支持它。
内存: 我不确定OProfile的确切内存占用量是多少,但是我相信它会保留相对较小的缓冲区,并偶尔将其转储到日志文件中。
Java: OProfile包含支持Java的配置代理,并且了解在JIT中运行的代码。因此,您将能够看到Java调用,而不仅是解释器和JIT中的C调用。
Web应用程序: OProfile是系统级的探查器,因此它不知道Web应用程序将具有的会话,事务等内容。
就是说,它是一个 完整的系统
探查器,因此,如果您的性能问题是由 *** 作系统和JIT之间的不良交互导致的,或者它在某些第三方库中,则可以看到,因为OProfile探查器内核和库。这对于生产系统是一个优势,因为您可以捕获由于测试环境中可能不存在的生产环境配置错误或细节而导致的问题。
- VisualVM: 不确定这一点,因为我没有使用VisualVM的经验
这是有关使用OProfile查找性能瓶颈的教程。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)