`
ayufox
  • 浏览: 273592 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

BlackStar功能预览

阅读更多

1.什么是BlackStar
     BlackStar将是一个高性能的JVM监控、性能监控和剖析的程序,目前BlackStar 具备如下功能:

  • 自动发现JVM:通过定期扫描,自动识别同一台服务器上的所有JVM实例
  • JMX Proxy/JConsole接入的功能:支持在不重启应用JVM、并且只有一个JMX端口,访问同一台服务器上多个JVM的JMX服务,同时支持JConsole的接入,计划在后期阶段使用web界面实现JConsole的所有功能
  • JVM数据定时采集功能:支持对同一服务器上的多个JVM定期进行数据采集,初期阶段提供包括CPU、PermSpace、TenuredSpace、Thread的采集数据,数据采集将使用可扩展的结构,后续将加上Tomcat数据采集,包括线程信息、请求排队等等。
  • JVM实时数据功能:通过Web界面提供JConsole没有提供的JVM实时数据,譬如一个JVM所有线程占用CPU情况
  • 高性能的性能数据采集和分析功能:使用Java Instrutment技术,在不对应用做任何修改的情况下,通过正则表达式配置,采集感兴趣的应用代码(譬如DAO、服务、调用外部服务等)的执行情况。将使用各种手段优化以保证采集器本身的高性能,以保证采集器可以在生产环境下与应用代码一起工作(目前的性能情况是200万次采集,平均每次采集大概5微妙左右,即20万次采集大概需要1秒时间)。后续将增加web访问的性能采集。

2.第一版本的结构和主要技术
2.1结构
 
     如上,

  • MonitorAgent是一个独立运行的程序,其自动识别同服务器上的业务JVM,PerfromanceAgent以JavaAgent的方式运行,如果需要进行数据采集和性能分析,则需要修改业务JVM的启动参数,PerformanceAgent将收集的性能数据记录到文件中
  • PerformanceStat是运行在MonitorAgent之上的一个插件,每天定时统计PerformanceAgent产生的性能数据
  • JVMMonitor是运行在MonitorAgent之上的一个插件,每分钟采集业务JVM的JVM数据
  • JMX Proxy提供了对本机所有JVM的JMX代理功能,JConsole可以通过该Proxy访问业务JVM的JMX服务
  • UI提供了对相应功能的界面,包括性能统计结果、JVM定期采集结果、JVM实时采集结果等

       此结构的缺点是当我们有多个业务服务器的时候,数据和功能比较分散,后续将支持统一的Portal对所有MonitorAgent进行统一管理,同时支持统一的采集数据中心汇集各应用服务器上的采集数据
2.2主要技术说明
2.2.1性能采集部分

2.2.2JVM监控部分

  • Java Management API:我们将使用JVM提供的Java Management API对业务JVM进行性能数据的采集,具体参见<<[Java性能剖析]JVM Management API >>
  • Sun Attach API:我们将使用Sun Attach API来自动识别业务JVM及动态启动业务JVM的JMX Service,具体参见<<[Java性能剖析]Sun JVM Attach API >>
  • JMX和MX4J JMX Proxy:JVM使用JMX的方式提供Java Management API,此外,我们可以使用JMX技术扩展管理页面提供更多的数据被采集,譬如采集Tomcat相关的数据等。此外,我们这里使用MX4J的JMX Proxy支持将业务JVM被远程性能分析器连接

3.功能预览
3.1JMX Proxy功能预览
3.1.1JConsole使用hessian协议访问远程服务JVM
 
3.1.2远程服务器两个JVM实例,注意连接使用同一个端口
 
3.2 定期采集数据功能预览
3.2.1UI功能首页,注意看,与JMXProxy使用的端口也是一样的,一个端口多个用途
 
3.2.2进入jforum JVM的Monitor功能,可以看到多天的采集数据

3.2.3进入20100627,我们看到采集了cpu,thread,PermSpace,TenuredSpace
 
3.2.4看看cpu情况,会与前一天做对比(忽略如下图中cpu为负值的情况,报表js本身功能的问题)
 
3.3实时采集数据功能预览
3.3.1我们看看jforum的线程情况,包括每个线程占该JVM的总CPU的百分比(如果应用CPU居高不下,可以通过这个看可能是哪个线程有问题),还提供Stack和DeadLock Detect,由于这是JConsole也有的功能,就不多介绍
 
3.3.2看看线程的CPU情况(注意,是实时采集的,因此没有历史数据可以看)

3.4.性能采集数据功能预览
3.4.1我们看看jforum的运行性能数据情况

3.4.2看看simple-20100627(哪些类的哪些方法数据会被采集是可以配置的)

4.BlackStar项目情况介绍
4.1开发人员:raywoo(ayufox@gmail.com)
4.2Code license: Apache License 2.0
4.3近期发布计划:

  • V0.5版本:包括如上的所有功能,目前主体已经开发完成,预计7月底可以发布
  • V0.6-V0.8的版本:提供Tomcat相关数据采集集成(譬如线程数据、Session数据、请求数据等)、Web请求数据集成(譬如基于URI的访问次数、访问时间、失败次数等等),预计9月底发布

 

2
0
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics