性能测试和故障诊断系列-方法和工具介绍

Java的Web应用故障诊断(2)之Yourkit的Start CPU profiling. Sampling, tracing, call counting.含义

Sampling

该模式会定期的访问栈,评估出运行较慢的代码。该模式没有方法的调用次数记录,仅有cpu时间。该模式是在进行提供瓶颈分析中最好的模式,对服务器额外开销最小。

在该模式中可以进行相关配置。(Simpling和tracing都可以进行相关配置)

在上图中,可以对要监控的类或者方法进行系统时间监控。

在上面的对话框中,可以输入多行代码,格式如下:

walltime=:()

or

walltime=

这样配置完成后,在配置中的方法将会显示系统时间(walltime),其他方法还是显示CPU时间。

在上述配置中支持通配符*,

采样时间的设置也是通过上面的对话框设置的

sampling_period_ms=

sampling_period_ms=20 20毫秒一采样

上述配置存储在了

/.yjp/sampling.txt

Tracing

应用Tracing模式,被监控应用的每一个方法都会被转化成字节码记录其消耗CPU的情况。方法调用次数和CPU时间都被记录下来。

但是tracing模式对服务器影响较大。

被检测服务的方法越多,对服务器性能影响越大。

该模式的设置除了包含了Sampling模式的设置外,还有一些其他的配制方法,具体如下:

adaptive tracing 模式是开启的

adaptive = ture

默认存储在/.yjp/tracing.txt

Call counting

最轻量级的CPU性能分析模式,对服务器的性能影响几乎为零。

该模式技术不一定完全精确。

为了能够保证对服务器机会为零的性能影响,该模式没有应用任何locks和test-and-set 的atomic操作。因此如果同一个方法是多线程的,同时在不同CPU的不同核上调用的时候,就出发生计数错误。

该模式不支持调用计数的auto activity mode,不收集hight-level-statistics。

开始监控后,实时看到的结果只是CPU的基本信息,要想查看详细信息,保存快照后,查看快照。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180808G0PQCD00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券