LinShunkang edited this page Nov 4, 2018 · 22 revisions

MyPerf4J默认提供了以下几个参数,用于控制MyPerf4J的行为:

属性 类型 必填 默认值 说明
AppName String Yes 配置应用名称
MetricsProcessorType int No 0 配置用于处理监控指标的Processor的类型 0:以标准格式化结构输出到stdout.log 1:以标准格式化结构输出到磁盘 2:以InfluxDB格式输出到磁盘
MethodMetricsFile String No /data/logs/MyPerf4J/metrics.log 配置方法性能监控指标的日志路径,NULL表示丢弃收集到的监控指标
ClassMetricsFile String No NULL 配置类加载监控指标的日志路径,NULL表示丢弃收集到的监控指标
GCMetricsFile String No NULL 配置GC监控指标的日志路径,NULL表示丢弃收集到的监控指标
MemMetricsFile String No NULL 配置内存监控指标的日志路径,NULL表示丢弃收集到的监控指标
BufPoolMetricsFile String No NULL 配置BufferPool监控指标的日志路径,NULL表示丢弃收集到的监控指标
ThreadMetricsFile String No NULL 配置线程监控指标的日志路径,NULL表示丢弃收集到的监控指标
LogRollingTimeUnit String No DAILY 配置日志文件滚动时间间隔,分别有MINUTELY、HOURLY和DAILY三个值
RecorderMode String No rough 配置RecordMode,包含accurate和rough两个模式
MilliTimeSlice int No 30000 配置统计时间片,单位为ms,最小1s,最大600s
ShowMethodParams boolean No false 是否展示方法参数类型
BackupRecordersCount Int No 1 配置备用Recorders的数量,最小1,最大8;当你的应用程序拥有非常多的方法需要监控并且你配置的MillTimeSlice比较小时,可以适当的提高BackupRecordersCount的数值。
IncludePackages String Yes 配置需要进行监控的包的前缀,支持多个包路径,每个包路径用英文';'分隔
ExcludePackages String No 配置不需要进行监控的包的前缀,支持多个包路径,每个包路径用英文';'分隔
Debug.PrintDebugLog boolean No false 配置是否打印debug日志,可配置为true/false
ExcludeMethods String No 配置不需要进行监控的方法名,每个方法名用英文';'分隔
ExcludePrivateMethod boolean No true 配置是否要排除私有方法,可配置为true/false
ExcludeClassLoaders String No 配置不需要进行监控的ClassLoader,支持多个ClassLoader,每个ClassLoader路径用英文';'分隔
ProfilingParamsFile String No 配置ProfilingParamsFile文件的路径;用于对MyPerf4J进行内存占用调优;形如: /your/path/to/myPerf4J.profilingParams
ProfilingTimeThreshold int No 1000 配置通用的方法响应时间阈值,单位为ms
ProfilingOutThresholdCount int No 16 配置通用的 方法响应时间超出指定阈值的次数,仅在RecorderMode=accurate时有效

关于Rough模式与Accurate模式

  • Rough模式

    • 精度略差,会把响应时间超过指定阈值的记录为'阈值+1'
    • 更加节省内存,只使用数组来记录响应时间
    • 速度略快一些
    • 默认
  • Accurate模式

    • 精度高,会记录所有的响应时间
    • 相对耗费内存,使用数组+Map来记录响应时间
    • 速度略慢一些
    • MyPerf4JPropFile配置文件中指定RecorderMode=accurate
  • 建议

    • 对于有以下特征的应用,推荐使用Rough模式
      • 内存敏感
      • 精度要求不是特别高
    • 对于有以下特征的应用,推荐使用Accurate模式
      • 内存不敏感
      • 精度要求特别高
      • 方法响应时间范围比较广

关于ProfilingParamsFile

ProfilingParamsFile用于指定每个具体方法的响应时间阈值以及超出阈值次数,让MyPerf4J以更少的内存统计更多的方法。

  • /your/path/to/myPerf4J.properties中指定 ProfilingParamsFile=/your/path/to/myPerf4J.profilingParams

  • /your/path/to/myPerf4J.profilingParams配置如下:

    #配置的格式为: 
    #fullClassName.methodName=方法响应时间阈值(ms):超出阈值的次数
    cn.perf4j.demo.DemoServiceImpl.getId1=1000:10
    cn.perf4j.demo.DemoServiceImpl.getId2=2000:20 
    
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.