应用中间件性能测试指标规范.docx

? ? ? ? ? ? ? 应用中间件性能测试指标规范 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 本文介绍在性能测试的时候,需要关注应用中间件的哪些参数或指标。 任何涉及到性能的事情,都离不开监控,本文还将介绍应用中间件WAS的监控方法。 原题: 应用中间件概念及关注指标 应用中间件WAS的监控方法 应用中间件需关注的指标 介绍在性能测试的时候,需要关注应用中间件的哪些参数或指标。本文以WAS为例,但实际上,概念都是一样的。 Web应用程序 1 概念 应用服务器提供Web服务(接收请求,返回应答),关注其服务的能力,包括响应时间、错误的比例、吞吐量等等。 2 关注指标 响应时间: 1)ServiceTime:完成servlet请求的平均响应时间(毫秒) 2)ResponseTime:接收到请求和方茴应答之间的平均时间 3)RequestResponseTime:接到请求与分派执行之间的时间 4)DispatchResponseTime:从分派执行到返回应答之间的平均时间。 可以只关注ResponseTime(接收到请求和方茴应答之间的平均时间),如果这个值出现异常,再分段分析哪里出现了问题。 ConcurrentRequests:并发处理的请求数 RequestCount:servlet处理的请求总数。结合这个指标和监控的总时间,可以计算请求的吞吐量。 ErrorCount:错误的数量。需要结合RequestCount计算错误的比例。 上述指标需要在PMI中的Web Service和Web应用程序两个分类中定制。 JDBC连接池 1 概念 当应用程序请求一个数据库连接时,连接池为该应用程序分配一个连接而不是重新建立一个连接;当应用程序使用完连接后,该连接被归还给连接池而不是直接释放。 使用连接池的最主要的优点是性能。创建一个新的数据库连接需要消耗较长时间以及较多的CPU,而采用数据库连接池后,数据库连接请求可以直接通过连接池中已经建立的连接来满足,而不需要为该请求重新连接、认证到数据库服务器,这样就节省了时间和CPU。 当然,数据库连接池如果设置过大,可能存在着多个没有被使用的连接,也就是资源的浪费。 因此,连接池中的连接也不需要都启用,而是采用这样的设计:池的大小(PoolSize)为50(举例),其中,至少有一个连接长期活着,以备有应用需要的时候马上响应。当应用需要10个连接的时候,就有10个连接被分配,此时PercentUsed为20%;当应用需要60个连接的时候,有50个连接被分配,此时PercentUsed可能非常高(例如70~100%),而剩下的10个需求则需要等待,WaitTime不为0,WaitingThreadCount(等待连接的平均并发线程数)不为0。当所有需求都被满足后,连接不再被使用,过了一段时间后,连接将被关闭。 2 设置 采用如下方法获取最大连接数、最小连接数、连接超时的设置 资源-JDBC-JDBC提供程序-DB2 Universal JDBC Driver Provider, 如下图: 点击DB2 Universal JDBC Driver Provider 点数据源 点MC_EBANK,点连接池属性 进入到如下页面,就可以看到JDBC连接池的基础配置参数。 3 关注指标 在性能测试中,需要重点关注的指标是: PoolSize:连接池的大小。连接池不宜设置过大,虽然设置很大可以解决应用线程使用数据库的问题,但可能会将数据库压垮。因此,需要在数据库的承受能力之内设置连接池的大小,具体数字需要性能测试。 PercentUsed:正在使用的池的平均百分率,该值基于连接池中已配置的连接总数,而不是当前连接数。如果这个值比较高(例如70%),那么可能连接池设置过小,需结合WaitTime和WaitingThreadCount来扩大PoolSize。 UseTime:使用连接的平均时间(毫秒为单位),分配连接和返回连接之间的时间差。此值包含JBDC操作时间。如果这个时间过长,可以查看是JDBCTime的问题还是应用的操作时间过长。如果是应用操作时间过长,那么就需要数据库的调优。 WaitTime:在允许连接之前的平均等待时间(单位毫秒)。如果这个值不为0,并且等待时间较长,需结合PercentUsed和WaitingThreadCount来扩大PoolSize。 WaitingThreadCount:等待连接的平均并发线程数 线程池 1 概念 和JDBC连接池类似,池的作用都是为了达到最大化的性能,对于Java系统,通常的作法是使用线程池、对象池,这样节约线程、对象生成时的性能开销,也就是说系统启动时,预先生成一定数目的线程、对象实例在内存中,需要使用时,从池中取

文档评论(0)

1亿VIP精品文档

相关文档