`
liyiye
  • 浏览: 427044 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

性能瓶颈分析方法

阅读更多

同一场景
1.小用户量的情况下测试
2.大用户量情况下的测试

分析的方法:
整个系统架构分析,系统响应时间消耗,利用图表分析
查看事务响应时间,通过事务摘要图分析事务响应时间,那个消耗最大(通过小用户量和大用户量的响应时间分析,查看那个事务响应时间最高),确定哪部分功能是性能的瓶颈,分析window resource图表,查看cpu

使用下列计数器标识cpu瓶颈
Processor\ Interrupts/sec
Processor\ % Processor Time
Process(process)\ % Processor Time
System\ Processor Queue Length

通过它来确定是否硬件本身出现瓶颈,或者进一步确定应该怎么去判断性能产生瓶颈的地方!
下一步去判断进程,那个进程消耗cpu最高
下边就有很多种情况需要你自己去判断,有可能是进程调用了的函数消耗了系统资源形成上边的问题,也有可能是后台数据库出现的问题(这个就要看你的系统配置是什么样的,比如你的db服务器和应用服务器都配置在一台机器上)

性能产生瓶颈有很多地方,所以需要进一判断,是否是后台数据库的问题还有待分析,是那条语句导致的问题需要进一步分析判断。

分析原则:
    • 具体问题具体分析(这是由于不同的应用系统,不同的测试目的,不同的性能关注点)
    • 查找瓶颈时按以下顺序,由易到难。
    服务器硬件瓶颈-〉网络瓶颈(对局域网,可以不考虑)-〉服务器操作系统瓶颈(参数配置)-〉中间件瓶颈(参数配置,数据库,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)'

分享到:
评论

相关推荐

    服务器性能瓶颈分析方法.pdf

    ### 服务器性能瓶颈分析方法详解 #### 一、引言 服务器性能的高效稳定是确保业务顺畅的关键。当服务器出现响应缓慢或无法处理更多请求的情况时,就需要进行性能瓶颈分析,找出导致性能下降的根本原因,并采取相应...

    性能瓶颈分析方法1

    【性能瓶颈分析方法1】 性能瓶颈分析是优化系统性能的关键步骤,主要目的是找出系统中限制整体效率的部分。这里我们将详细探讨在小用户量和大用户量两种情况下的测试分析方法,以及如何通过系统架构分析、响应时间...

    性能测试-瓶颈分析方法

    ### 性能测试中的瓶颈分析方法 #### 一、引言 在软件开发与系统集成的过程中,性能测试是一项至关重要的环节。它不仅能够帮助我们了解系统在特定负载下的行为表现,还能通过细致入微的数据分析找出系统存在的瓶颈,...

    基于遗传算法的分布式系统性能瓶颈分析.pdf

    在这篇文章中,作者胡少君等人介绍了一种基于自适应遗传算法的分布式系统性能瓶颈分析方法。遗传算法是一种模拟自然选择和遗传学机制的搜索优化算法,它通过选择、交叉(或称为杂交)和变异等操作来对解空间进行搜索...

    性能瓶颈分析及案例总结

    本文档旨在提供一个全面的性能瓶颈分析方法论,并通过具体的案例总结来加深理解。性能瓶颈是指在系统运行过程中出现的制约整体性能的关键因素。识别并解决这些瓶颈是提高系统效率、保障用户体验的重要手段。 #### ...

    Linux实时性能瓶颈分析.pdf

    《Linux实时性能瓶颈分析》这篇文章主要探讨了Linux操作系统在实时性能方面的问题,以及与RT-Linux和VxWorks两款硬实时操作系统的对比。在实时系统中,任务调度、信号量和消息队列的效率对系统性能有着重大影响。 ...

    常见Web性能瓶颈及分析

    ### 常见Web性能瓶颈及分析 #### 引言 随着互联网技术的快速发展与普及,Web应用已经成为人们日常生活中不可或缺的一部分。然而,随着Web应用的复杂度不断提高,其性能问题也日益凸显出来。本文旨在深入探讨Web性能...

    服务器性能瓶颈分析

    服务器性能瓶颈分析是确保系统高效运行的关键环节。本文主要探讨了三个主要的性能瓶颈领域:内存分析、处理器分析以及磁盘I/O分析,并提供了相应的监控和诊断方法。 内存分析是评估系统性能的第一步,主要是检查...

    找出系统性能的瓶颈:企业级系统性能分析实践

    4. **性能问题定位与解决**:通过对测试数据的分析,定位性能瓶颈所在,并采取相应措施进行优化。 5. **持续改进与优化**:性能优化是一个持续的过程,需要不断地根据业务发展和用户反馈进行调整和优化。 #### 三、...

    找出系统性能瓶颈:企业级系统性能分析实践 v3.0.pdf

    《找出系统性能瓶颈:企业级系统性能分析实践》提供了一套全面而实用的方法论,帮助IT专业人员从理论到实践层面,系统地识别、分析和解决企业级系统中的性能瓶颈问题。通过对关键知识点的深入理解,IT团队可以更加...

    性能测试技巧,性能瓶颈分析,性能调优

    本文将深入探讨几个关键概念和技术,包括TPS、QPS、吞吐量、性能测试流程和策略,以及性能瓶颈分析与调优。 1. TPS(Transactions Per Second)和QPS(Queries Per Second) TPS是衡量系统每秒处理事务的数量,而...

    性能测试--瓶颈分析方法.doc

    ### 性能测试中的瓶颈分析方法 #### 一、内存分析方法 内存分析主要用于判断系统是否存在内存瓶颈,并确定是否需要通过增加内存等手段来提升系统的性能。内存分析主要依赖于以下几种性能计数器: 1. **Memory ...

    软件测试中性能测试--瓶颈分析方法

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

    JAVA性能瓶颈和漏洞检测

    * 轻松发现和消除性能瓶颈 * 查找问题代码 * 节省后续硬件及开发投入 * 增加应用发布信心 * 与开发过程集成,改善应用性能 JProbe Suite是一种能节省开发时间、降低开发费用、改善Java应用运行速度及和扩展能力的...

    网络协议栈及性能瓶颈分析1

    总的来说,"网络协议栈及性能瓶颈分析1"旨在通过深入理解网络协议栈的工作原理和潜在问题,寻找提高网络性能和数据传输效率的方法。这不仅对于HEP领域,也对于任何依赖高速网络通信的行业,如云计算、大数据和物联网...

Global site tag (gtag.js) - Google Analytics