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的基本信息,要想查看详细信息,保存快照后,查看快照。
领取专属 10元无门槛券
私享最新 技术干货