
Spotlight实时诊断WebLogic Server实践
常见的性能问题
Spotlight能帮助你快速地识别性能问题的症状,并且在一定程度上帮助你解决与这些症状直接相关的基本问题。对于比较复杂的问题,特别在后端层(如数据库或EIS)出现瓶颈时,Spotlight能帮助你识别出问题,从而使用更深入的分析工具解决问题,例如用于在应用服务器和Java代码级分析J2EE的Quest PerformaSure和JProbe,还有用于数据库查询调优的Quest SQL Navigator。
当一些J2EE应用性能问题来自应用服务器和应用代码本身之外的地方时,往往这些地方是最常见且需要优化的,在针对WebLogic Server的Spotlight中这些地方可能以警告级别的情况出现,如以下描述:
执行队列大小:常见的问题是没有足够的,用于在合理的时间内完成客户请求的线程数。执行队列的调优需要小心测试你的服务器,还有堆和可用线程数之间要达到一个好的平衡,
JDBC连接池:JDBC连接池是性能瓶颈非常常见的源头。等待JDBC连接的线程数越多意味着应用客户端的等待时间越长。在以数据库为中心的应用达到负载高峰时,确保有足够的可用连接数是避免这个问题的一个好方法。
堆大小/垃圾回收:对于一些WebLogic管理员来说,调优堆和管理垃圾回收仍然是一项难事。有很多因素影响着JVM堆大小优化,包括期望的客户数量,WebLogic容器使用的JVM,服务器机器,甚至是服务器操作系统的可用的物理内存量都可能影响着JVM堆大小的优化。
在应用服务器中还有很多其它资源需要调优,例如bean缓冲(cache),池大小和事务超时。Spotlight可以识别WebLogic Server在这些方面中配置不当的症状。
查找性能问题
下面是一个简单的例子,向你演示怎么使用Spotlight解决一个服务器实例上面的一些常见性能问题。这个例子来自运行在WebLogic8.1上面的Medical Records事例应用。
高层诊断:Domain Overview
使用Spotlight登录到WebLogic Server之后,你将注意到服务器名下面的橙色线指出MedRecServer处于中级警告。另外,小黄星 状态图标指出MedRec应用的一个模块出现低级警告。
因为服务器的性能问题的警告级别比应用的性能问题警告级别高,我们将首先看它。
服务器层诊断
要看服务器层的问题情况,通过点击服务器名进入到Server Overview窗口中深入分析。查看这个窗口,你能发现两个地方存在问题:一个是Heap Usage和一个是Entity Beans。
你能够通过右键点击Heap Usage图获得更多关于服务器警告的信息。这将显示与上下文相关的警告帮助信息,描述出现问题的原因和一些可能解决方案。
测量的开销
如果你的堆太小,能够加载到内存中的数据量就少,而如果应用需要大量的数据就必须多次将数据加载到内存中,这将影响应用所能支持的负载。尽可能多地给应用服务器内存是解决该问题的一个好办法。
你能通过修改WebLogic Server的启动脚本增加堆的大小。如果这还没解决Heap Usage问题,你还可以调整JVM的内存配置。在与上下文相关的警告帮助信息中可以找到这两个步骤的描述。
服务器细节诊断
现在你能够查看Entity Beans的问题了。点击Server Overview窗口中的Entity Beans按钮进入到EJB Modules块中深入分析。
正如你在Domain Overview窗口中看到的,问题与EntityEJB有关。要更深入地查看这个模块,点击表中的EntityEJB列进入到EJB Module Overview窗口。
你能够看到这个问题与cache hits有关。如果cache hit百分率太小,与实际处理请求时间相比,WebLogic将花费更多的时间管理cache。增加cache大小,将使得在给定的时间内,内存中可容纳更多的beans,从而增加了cache hit百分率。
要查找Entity Bean,点击该工具条进入Entity Beans表,对这个表以Cache Hit%列进行分类。
你现在将看到哪个Entity Bean需要更大的cache。点击这一行打开它与上下文相关的警告帮助信息,这些信息描述了怎样改变Entity Bean Cache的大小。
(北京铸锐数码科技有限公司 www.InnovateDigital.com)
|