构建高性能WebSphere企业级应用-第11章读书笔记-性能下降问题实例分析

一、性能下降的原因:

1。应用程序资源使用问题。主要是内存使用问题,即由于应用服务器的内存碎片问题或者内存泄露问题,导致垃圾回收的开销岁时间增大。也有可能是因为磁盘临时文件积累造成磁盘访问开销增大。

2。应用程序设计问题。由于应用程序的设计存在可扩展性或可靠性问题,导致运行开销随时间或业务对象的积累而增大。

3。数据库访问问题。该问题又可以分为多种类型,如调优参数问题、表结构或索引设计问题、垃圾数据问题等。其共同特点是导致应用程序利用特定操作访问数据库的开销随时间而增大。

4。服务器软件资源问题。虽然可能性很小,但是应用服务器、数据库服务器等服务器程序也是软件程序,也有可能存在性能下降问题。这些服务器程序在自身测试过程中可能遗漏了某些性能问题,而在用户特定的执行状况下触发了这些问题,结果导致这些服务器程序使用的操作系统资源泄露而出现性能下降问题。

5。测试用例设计问题。性能测试中有可能出现一些“假”的性能下降问题。比如测试用例设计时假设在测试执行过程中系统负载保持很定,但实际的测试用例实现导致系统负载或特定页面的处理内容虽时间增多,也可能导致测试工具的测试报告中出现性能下降问题。


二、自顶向下分析和解决过程

1。在性能测试报告中检查是否所有页面/命令的相应时间均随时间下降。如果只有少数特定的页面有问题,往往是特定页面设计或代码实现的问题所导致的,可以使用一些运行剖析分析工具(如jinsight)来进行分析。该问题一般不属于数据库引起的性能下降问题。

2。如果重新启动WAS,性能指标恢复,通常说明问题是由应用服务器的运行状态引起的。最常见的是内存使用问题,可以通过垃圾回收日至分析确定是否内存使用问题。

3。检查数据库服务器的统计信息是否需要更新。

4。检查数据库配置参数是否需要调优。如果没有做过谙熟调优,可以考虑通过性能监视和日志分析进行参数调优过程。可能解决性能下降问难题的Db2性能参数包括缓冲大小(BUFFPAGE),排序对大小(SORTHEAP)等。如果数据库参数调优后,交易屯督率下降问题仍然存在,那么可能需要检查是否存在特定的SQL执行次数或小小一场。如果没有发现特定的SQL开销异常,则转到下一步继续进行分析。

5。检查数据库中的数据是否存在分布不均匀的情况。性能测试过程中数据分布的不均匀往往是由预热执行过程不合理或正式运行时用户分布不均匀导致的。

6。缩小测试场景。这个过程又称为分割和排查

7。对上一步中确定的发生性能下降问题的最小测试场景进行长时间的压力测试,并在测试过程中对数据库获取多次快照,从而获取性能下降各个阶段的数据库状态信息。

8。对比不同阶段的数据库快照,检查是否出现SQL语句的总执行成本和该SQL语句的执行次数的比值(Cost/SQL,即单词SQL语句的执行成本)变大的情况。如果变大,可以通过清除数据库中的来几数据或者调整数据表索引来尝试解决性能下降问题。通过对比不同的数据库快照文件,可以找出执行成本增加最快的SQL语句。

9。如果COST/SQL在测试运行期间保持相对稳定,可以通过比较数据库快照文件来观察某些SQL语句是否存在每次执行该SQL语句时所读取的数据行数逐渐增大的情况。如果存在读取行数逐渐增大的SQL语句,应该尝试调整其对应的索引来改善数据库性能;否则需要通过分析访问计划来判断其他数据库设计是否还有改进的余地。

三、数据库引起的性能下降问题分析


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值