使用Java构建高伸缩性组件
2009-12-21 00:00:00 来源:WEB开发网核心提示: 经过为伸缩性而优化的组件非常有益于解决这些困难问题,举例来说,使用Java构建高伸缩性组件(2),如果存在一个高伸缩性队列组件,那么实现生产者/消费者伸缩性相对容易些,它与JLA类似,只不是通过图形界面显示缩合竞争数据,本文中,我们提供了若干通用技术提高软件组件的伸缩性
经过为伸缩性而优化的组件非常有益于解决这些困难问题。举例来说,如果存在一个高伸缩性队列组件,那么实现生产者/消费者伸缩性相对容易些。本文中,我们提供了若干通用技术提高软件组件的伸缩性。
针对伸缩性的分析
应用分析是开发过程的重要方面。分析是为了了解应用的运行特征。分析数据经常被用于提高应用的性能和伸缩性。大多数分析器遵从一个简单的执行模式,其中有一个配置阶段。在该阶段,根据信息获取的类型,会配置不同层次的计算堆栈。硬件计数器可以被用来监控硬件事件。操作系统可以通过配置各种操作系统事件来监控。如果在计算层次中还有虚拟机,那么需要配置以访问虚拟机的事件。最后,应用需要配置以得到真实应用的事件。优秀的分析器能够在不要求应用重新编译的情况下完成这些配置。大多数分析器通常都配置虚拟机和应用层。应用在配置之后运行时,会生成跟踪信息,例如函数运行时间、资源使用情况、硬件性能参数、锁使用、系统时间、用户时间等等。不同的分析器会在把跟踪信息输出到文件系统前做一些计算。最后,分析器会通过显示界面可视化这些数据。
用于并发应用的分析器需要提供有关线程、锁竞争和同步点的详细信息。我们使用了下面一些分析器作为Amino性能分析:
Java锁监控器(Java Lock Monitor)——Java开发人员使用该工具分析应用中锁的使用情况。在运行时,监控组件收集各种锁数据用于发现锁竞争。该工具能够通过表格展示详细的锁和竞争信息。IBM Java Lock Analyzer (JLA)是另一个提供锁信息的工具。它与JLA类似,只不是通过图形界面显示缩合竞争数据。两个工具都支持x86和Power平台。
更多精彩
赞助商链接