51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 4303|回复: 7
打印 上一主题 下一主题

[讨论] 大家是如何定位系统瓶颈的

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2008-8-10 11:15:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我在做负载,压力测试时,发现的大多数问题都是程序代码的设计的问题,一般都是在加压时报错,或速度特别慢,然后让程序员去检查代码,想问一下你们都是怎么定位系统瓶颈的,有经验的都说两句最好是举个例子
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
 楼主| 发表于 2008-8-10 21:35:04 | 只看该作者
自己顶一下
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2008-8-11 11:12:58 | 只看该作者
这个,我现在也是比较迷茫,服务器监控不了,除了问题都不知道发生在哪,然后数据库也没法看。上周测定时候,并发300+的时候就大量的出现了拒绝服务的情况,根本无法定位,只能是估计连接池满了或数据库出了问题。
很悲剧。
回复 支持 反对

使用道具 举报

  • TA的每日心情
    郁闷
    2015-6-16 14:29
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    4#
    发表于 2008-8-11 11:56:57 | 只看该作者
    根据错误判断性能呀,拒绝服务,可能是连接池满了,也可能是内存不足了,也可能是系统本身的连接数超了,很多地方可以检查,把可能出现的错误,一个个列出来,一一排查。

    性能测试工作要是好做,那么性能测试工程师就不值钱啦,呵呵。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    5#
     楼主| 发表于 2008-8-11 20:35:07 | 只看该作者
    大家继续
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    6#
    发表于 2008-8-12 09:02:05 | 只看该作者
    go on
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    7#
    发表于 2008-8-12 10:59:02 | 只看该作者
    对于联机事务处理的应用系统,首先观察事务的每秒吞吐量曲线,找到最大的吞吐量拐点```
    确定硬件环境下的,最大事务吞吐量,找到最大吞吐量下的最佳响应时间,可知道事务处理能力。
    然后确定事务响应时间是否合理,定位事务在负载压力下是否满足预期目标```
    然后分析未达标事务执行状况,监控执行的程序方法以及数据库执行语句状况```
    进行微观分析,采用单用户或双用户模式下的监控跟踪,定位效率较低的程序方法,定位事务产生的SQL语句,并TUNING。
    搞定程序方法执行与SQL生成执行效率,微观分析每条SQL语句的执行解析物理逻辑读结果扫描等等问题后``
    进行容量测试,可查看索引合理性问题,大并发压力测试观察监控锁争用是否造成死锁和阻塞问题。
    同时在大并发负载压力下观察数据库资源消耗是否合理的问题,以此判断数据库的配置设置的合理性。
    以上需要了解数据库设计,数据库体系结构,业务事务与数据库设计的关联,数据库SQL语句执行效率分析关键点等等。

    可通过监控JVM来追踪HTTP线程与JVM其他的资源消耗,从线程中分析方法,从方法关联调用中追踪最底层的程序方法
    定位出最消耗CPU与内存和占用处理时间最高的方法,联机事务处理应用系统,程序逻辑方法中的页面展示与逻辑处理如果占用了太高的时间和CPU,则绝对存在问题。假如为数据库执行的程序方法占用较高的时间则为正常,且跟踪该方法内的数据库执行语句,回到上面的过程就是监控每一条方法内生成的SQL语句,以及语句执行效率。

    等等等,以上只针对J2EE下的联机事务处理的数据库应用为中心的信息系统,其他的另谈。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    8#
    发表于 2008-8-12 11:07:09 | 只看该作者
    原帖由 bzcyer 于 2008-8-11 11:12 发表
    这个,我现在也是比较迷茫,服务器监控不了,除了问题都不知道发生在哪,然后数据库也没法看。上周测定时候,并发300+的时候就大量的出现了拒绝服务的情况,根本无法定位,只能是估计连接池满了或数据库出了问题。
    ...


    善意的提醒,缺乏有效的跟踪监控的性能测试,等于没做性能测试。

    未出现错误前,事务的响应时间和资源消耗状况是怎么样的呢?很多问题得综合进行分析,单纯因为拒绝服务而断定连接满了是不太理智的。

    大多性能的问题,宏观讲是程序架构设计,以及数据库设计的问题,微观讲是程序方法执行效率与SQL生成与执行效率的问题。

    如果只找出连接不够而出现的问题,那么可以说你的应用是很牛的了,但一般来讲90%不是配置出现问题,而是设计和编码实现出现问题。
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-20 19:34 , Processed in 0.071391 second(s), 27 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表