`
eminem
  • 浏览: 138298 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

性能测试(并发负载压力)测试分析

阅读更多
转自:http://freeke.blog.sohu.com/86869207.html

分析原则:



• 具体问题具体分析(这是由于不同的应用系统,不同的测试目的,不同的性能关注点)



• 查找瓶颈时按以下顺序,由易到难。



*          服务器硬件瓶颈

*          网络瓶颈(对局域网,可以不考虑)

*          服务器操作系统瓶颈(参数配置)

*          中间件瓶颈(参数配置,数据库, web 服务器等)

*          应用瓶颈( SQL 语句、数据库设计、业务逻辑、算法等)



    注:以上过程并不是每个分析中都需要的,要根据测试目的和要求来确定分析的深度。对一些要求低的,我们分析到应用系统在将来大的负载压力(并发用户数、数据量)下,系统的硬件瓶颈在哪儿就够了。



• 分段排除法 很有效



分析的信息来源:

*          • 1 根据场景运行过程中的错误提示信息

*          • 2 根据测试结果收集到的监控指标数据



一.错误提示分析



分析实例:

1     • Error: Failed to connect to server “ 10.10.10 .30:8080 ″ : [10060] Connection

• Error: timed out Error: Server “ 10.10.10 .30 ″ has shut down the connection prematurely

分析:

• A 、应用服务死掉。

(小用户时:程序上的问题。程序上处理数据库的问题)

• B 、应用服务没有死

(应用服务参数设置问题)



    例:在许多客户端连接 Weblogic 应用服务器被拒绝,而在服务器端没有错误显示,则有可能是 Weblogic 中的 server 元素的 AcceptBacklog 属性值设得过低。如果连接时收到 connection refused 消息,说明应提高该值,每次增加 25 %



• C 、数据库的连接



(1 、在应用服务的性能参数可能太小了 2 、数据库启动的最大连接数(跟硬件的内存有关) )



2 Error: Page download timeout (120 seconds) has expired



分析:可能是以下原因造成



*          • A 、应用服务参数设置太大导致服务器的瓶颈

*          • B 、页面中图片太多

*          • C 、在程序处理表的时候检查字段太大多



二.监控指标数据分析



1 .最大并发用户数:



应用系统在当前环境(硬件环境、网络环境、软件环境(参数配置))下能承受的最大并发用户数。



*          在方案运行中,如果出现了大于 3 个用户的业务操作失败,或出现了服务器 shutdown 的情况,则说明在当前环境下,系统承受不了当前并发用户的负载压力,那么最大并发用户数就是前一个没有出现这种现象的并发用户数。

*          如果测得的最大并发用户数到达了性能要求,且各服务器资源情况良好,业务操作响应时间也达到了用户要求,那么 OK 。否则,再根据各服务器的资源情况和业务操作响应时间进一步分析原因所在。



2 .业务操作响应时间:



*          • 分析方案运行情况应从平均事务响应时间图和事务性能摘要图开始。使用“事务性能摘要”图,可以确定在方案执行期间响应时间过长的事务。

*          • 细分事务并分析每个页面组件的性能。查看过长的事务响应时间是由哪些页面组件引起的?问题是否与网络或服务器有关?

*          • 如果服务器耗时过长,请使用相应的服务器图确定有问题的服务器度量并查明服务器性能下降的原因。如果网络耗时过长,请使用“网络监视器”图确定导致性能瓶颈的网络问题



3 .服务器资源监控指标:



内存:



1 UNIX 资源监控中指标内存页交换速率( Paging rate ),如果该值偶尔走高,表明当时有线程竞争内存。如果持续很高,则内存可能是瓶颈。也可能是内存访问命中率低。



2 Windows 资源监控中,如果 Process\Private Bytes 计数器和 Process\Working Set 计数器的值在长时间内持续升高,同时 Memory\Available bytes 计数器的值持续降低,则很可能存在内存泄漏。



内存资源成为系统性能的瓶颈的征兆 :



*          很高的换页率 (high pageout rate);

*          进程进入不活动状态 ;

*          交换区所有磁盘的活动次数可高 ;

*          可高的全局系统 CPU 利用率 ;

*          内存不够出错 (out of memory errors)



处理器:



1 UNIX 资源监控( Windows 操作系统同理)中指标 CPU 占用率( CPU utilization ),如果该值持续超过 95% ,表明瓶颈是 CPU 。可以考虑增加一个处理器或换一个更快的处理器。如果服务器专用于 SQL Server, 可接受的最大上限是 80-85%



合理使用的范围在 60% 至 70% 。



2 Windows 资源监控中,如果 System\Processor Queue Length 大于 2 ,而处理器利用率( Processor Time )一直很低,则存在着处理器阻塞。



CPU 资源成为系统性能的瓶颈的征兆 :



*          很慢的响应时间 (slow response time)

*          CPU 空闲时间为零 (zero percent idle CPU)

*          过高的用户占用 CPU 时间 (high percent user CPU)

*          过高的系统占用 CPU 时间 (high percent system CPU)

*          长时间的有很长的运行进程队列 (large run queue size sustained over time)



磁盘 I/O :



1 UNIX 资源监控( Windows 操作系统同理)中指标磁盘交换率( Disk rate ),如果该参数值一直很高,表明 I/O 有问题。可考虑更换更快的硬盘系统。



2 Windows 资源监控中,如果 Disk Time 和 Avg.Disk Queue Length 的值很高,而 Page Reads/sec 页面读取操作速率很低,则可能存在磁盘瓶径。



I/O 资源成为系统性能的瓶颈的征兆 :



*          过高的磁盘利用率 (high disk utilization)

*          太长的磁盘等待队列 (large disk queue length)

*          等待磁盘 I/O 的时间所占的百分率太高 (large percentage of time waiting for disk I/O)

*          太高的物理 I/O 速率 :large physical I/O rate(not sufficient in itself)

*          过低的缓存命中率 (low buffer cache hit ratio(not sufficient in itself))

*          太长的运行进程队列,但 CPU 却空闲 (large run queue with idle CPU)



4 .数据库服务器:



SQL Server 数据库:



1 SQLServer 资源监控中指标缓存点击率( Cache Hit Ratio ),该值越高越好。如果持续低于 80% ,应考虑增加内存。



2 如果 Full Scans/sec (全表扫描 / 秒)计数器显示的值比 1 或 2 高,则应分析你的查询以确定是否确实需要全表扫描,以及 SQL 查询是否可以被优化。 



3 Number of Deadlocks/sec( 死锁的数量 / 秒 ) :死锁对应用程序的可伸缩性非常有害,并且会导致恶劣的用户体验。该计数器的值必须为 0 。



4 Lock Requests/sec( 锁请求 / 秒 ) ,通过优化查询来减少读取次数,可以减少该计数器的值。



Oracle 数据库:



1 如果自由内存接近于 0 而且库快存或数据字典快存的命中率小于 0.90 ,那么需要增加 SHARED_POOL_SIZE 的大小。



快存(共享 SQL 区)和数据字典快存的命中率: 



select(sum(pins-reloads))/sum(pins) from v$librarycache;



select(sum(gets-getmisses))/sum(gets) from v$rowcache;



自由内存: select * from v$sgastat where name= ’ free memory ’ ;



2 如果数据的缓存命中率小于 0.90 ,那么需要加大 DB_BLOCK_BUFFERS 参数的值(单位:块)。



缓冲区高速缓存命中率:



select name,value from v$sysstat where name in (’db block gets’,



‘ consistent gets’,'physical reads’) ;



Hit Ratio = 1-(physical reads / ( db block gets + consistent gets))



3 如果日志缓冲区申请的值较大,则应加大 LOG_BUFFER 参数的值。



日志缓冲区的申请情况 :



select name,value from v$sysstat where name = ‘redo log space requests’ ;



4 如果内存排序命中率小于 0.95 ,则应加大 SORT_AREA_SIZE 以避免磁盘排序 。



内存排序命中率 :



select round((100*b.value)/decode((a.value+b.value), 0, 1, (a.value+b.value)), 2)from v$sysstat a, v$sysstat b where a.name=’sorts (disk)’ and b.name=’sorts (memory)’



注:上述 SQL Server 和 Oracle 数据库分析,只是一些简单、基本的分析,特别是 Oracle 数据库的分析和优化,是一门专门的技术,进一步的分析可查相关资料。
经验表明,瓶颈很容易发生在如下地方:数据库连接与队列中;应用服务器的程序代码中;应用服务器和Web服务器硬件上;网络和TCP配置中。实际中可以着力对这些环节进行监控。

分享到:
评论

相关推荐

    性能测试(并发负载压力)测试分析-简要篇.txt

    本文将基于提供的标题、描述及部分内容来深入探讨并发负载压力测试的相关知识点。 #### 一、并发负载压力测试概述 并发负载压力测试主要是为了评估系统在高并发访问下的表现,包括系统的稳定性、响应时间和资源...

    软件性能测试(并发负载压力)测试分析

    软件软件性能测试(并发负载压力)测试分析性能测试是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。负载测试和压力测试都属于性能测试,两者可以结合进行。通过负载测试...

    性能测试与负载测试、压力测试

    性能测试与负载测试、压力测试 性能测试是评价系统或组件的性能是否和具体的性能需求一致的测试方法。它关注的是系统性能是否和具体的性能需求相一致,评价系统或组件在规定的时间内和特定的条件下响应用户或系统...

    性能测试(并发负载压力)测试分析-简要篇[2]

    性能测试(并发负载压力)测试分析-简要篇[2]软件测试二.监控指标数据分析1.最大并发用户数:应用系统在当前环境(硬件环境、网络环境、软件环境(参数配置))下能承受的最大并发用户数。在方案运行中,如果出现了大于3个...

    性能测试(并发负载压力)测试分析-简要篇[4]

    性能测试(并发负载压力)测试分析-简要篇[4]软件测试select(sum(gets-getmisses))/sum(gets)fromv$rowcache;自由内存:select*fromv$sgastatwherename=’freememory’;2如果数据的缓存命中率小于0.90,那么需要加大DB...

    JMeter性能测试、负载测试和压力测试

    JMeter主要用于性能测试、负载测试和压力测试,以评估应用程序在不同负载情况下的性能和稳定性。它可以模拟多种协议(如HTTP、HTTPS、FTP、SOAP、REST等)的请求,并生成大量并发用户以模拟真实世界的使用情况。通过...

    性能测试(并发负载压力)测试分析-简要篇[3]

    性能测试(并发负载压力)测试分析-简要篇[3]软件测试1UNIX资源监控(Windows操作系统同理)中指标磁盘交换率(Diskrate),如果该参数值一直很高,表明I/O有问题。可考虑更换更快的硬盘系统。2Windows资源监控中,如果...

    软件测试中性能测试,负载测试,压力测试有什么区别

    在网上看到了一篇很详细的解释,贴在这里和大家分享一下:性能测试(或称多用户并发性能测试)、负载测试、强度测试、容量测试是性能测试软件测试中性能测试,负载测试,压力测试有什么区别对于性能测试,负载测试,...

    IIS并发数测试,IIS并发数测试压力测试

    10. **压力测试策略**:逐步增加并发用户数,观察服务器性能变化,找出临界点,以评估服务器的最大承载能力。 11. **安全性考量**:在进行并发数测试时,需确保不会对其他正常服务造成影响,遵循安全测试原则,避免...

    性能测试方案 作压力,负载测试

    性能测试是评估软件系统在高负载或大量并发用户情况下的响应速度、稳定性和资源消耗的过程。在教学环境下进行性能测试,通常是为了教育学生如何模拟真实世界中的使用场景,理解系统在极限条件下的行为,以及发现潜在...

    性能测试(并发负载压力)测试分析-简要篇[1]

    性能测试(并发负载压力)测试分析-简要篇[1]软件测试在论坛混了多日,发现越来越多的性能测试工程师基本上都能够掌握利用测试工具来作负载压力测试,但多数人对怎样去分析工具收集到的测试结果感到无从下手,下面我就...

    网站负载压力测试工具(单机版)

    网站负载压力测试是评估一个网站或应用程序在高并发访问下的性能和稳定性的关键步骤。单机版的网站负载压力测试工具提供了对服务器和网站性能进行评估的便捷方式,尤其适合个人开发者或者小型团队使用。本篇文章将...

    BPS测试新建并发最大性能.docx

    总的来说,这篇文档详细描述了如何使用BPS测试仪进行防火墙新建并发最大性能的测试流程,从流量模型的创建到测试配置,再到结果分析,涵盖了性能测试的重要环节,为评估防火墙在高并发情况下的性能表现提供了详实的...

    负载压力测试及故障

    ### 负载压力测试及故障 #### 一、负载压力测试概述 负载压力测试是软件测试中的一个重要组成部分,主要用于评估系统在特定负载条件下的性能表现。这种测试可以帮助开发团队发现潜在的问题点,并确保应用程序在高...

    软件测试中的性能测试(并发负载压力)测试分析

    在论坛混了多日,发现越来越多的性能测试工程师基本上都能够掌握利用软件测试工具来作负载压力测试,但多数人对怎样去分析工具收集到的测试结果感到无从下手,下面我就把个人工作中的体会和收集到的有关资料整理出来...

    软件测试中的性能测试与负载测试技巧2.pptx

    ### 软件测试中的性能测试与负载测试技巧 #### 第一章:简介 ##### 1.1 什么是性能测试与负载测试? - **性能测试**:旨在评估系统在特定工作负载下的表现,如响应时间、吞吐量、资源利用率等。 - **负载测试**:...

    软件测试中的性能测试与负载测试技术.pptx

    ### 软件测试中的性能测试与负载测试技术 #### 第一章:软件测试中的性能测试与负载测试技术 **简介** 性能测试是软件测试的关键组成部分之一,它着重于评估软件系统在各种负载条件下的性能表现。这类测试有助于...

    性能测试与压力测试区别

    性能测试通常包括多种子类型,如负载测试、压力测试和容量测试等。 **压力测试**(Stress Testing)则是性能测试的一个子集,它专注于评估系统在极端条件下的行为,比如大量用户同时访问、高频率的事务处理或超出...

Global site tag (gtag.js) - Google Analytics