51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

查看: 8180|回复: 26
打印 上一主题 下一主题

[原创] 贴一张LR对服务器的监控图。。请大虾们进来分析下。。多谢。。

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2009-6-12 16:31:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
此图为对服务器的监控的图。。

我一共设置了120个用户对航班时刻表进行查询,到达120人的时候,平均响应时间已经25S,这显然达不到我们的要求。
此图为我对服务器监控的结果,请帮忙分析一下,我们的瓶颈在哪里,要怎么样做调整。
下图是事务平均响应时间的图


下图是吞吐量

下图是每秒点击数的图


我们的软件是应用在手机上的,所以不能录制,我也仅仅是对航服的接口做压力,所以不存在网页细分图。
我的脚本如下:
/**********************************************************
   * 事务名称:航班时刻表查询
   * 事务业务功能: 查询条件,返回查询结果
   * 测试对象:差旅系统
   * HTTP请求方法:POST
   *********************************************************/

flidht_datetable()

{
response=(char *)calloc(1000,sizeof(char));
check =(char *)calloc(1000,sizeof(char));
web_reg_save_param("response",
                   "LB=<value>",
                   "RB=</value>",
                   "search=all",
                    LAST);
lr_start_transaction("search_flight_datetable");
//lr_rendezvous("submitdata");
web_submit_data("search_flight_datetable",
                "Action=http://192.168.2.73:9080/trip/doServer?",
                "Method=POST",
                "Mode=HTML",
                 ITEMDATA,
                "Name=userCode","Value=AAAAAA",ENDITEM,//
                "Name=userType","Value=AAAAAA",ENDITEM,//用户类型,这里用交行的doc
                "Name=channel","Value=1",ENDITEM,//手机用户用mobile.网站用户是web
                "Name=tranCode","Value=FT0003",ENDITEM,//交易代码
                  "Name=orgCity","Value={orgcity}",ENDITEM,// 三字码
                  "Name=dstCity","Value={dstcity}",ENDITEM,
                "Name=departDate","Value=20090629",ENDITEM,
                "Name=carrier","Value=ALL",ENDITEM,//航空公司
                                "Name=page","Value=1",ENDITEM,
                                "Name=pageSize","Value=9",ENDITEM,
                 LAST);
    lr_end_transaction("search_flight_datetable",LR_AUTO);

    lr_start_transaction("search_flight_datetable_check");

    sprintf(response,"%s",lr_eval_string("{response}"));
    check =(char *)strstr(response,"0");
    if (!check) {
        lr_set_transaction_status(LR_FAIL);
        lr_log_message("返回数据是 [%s]",response);  //
    }
    lr_end_transaction("search_flight_datetable_check",LR_AUTO);

    return 0;

   free(response);
   free(check);
}

[ 本帖最后由 Lorita 于 2009-6-15 12:11 编辑 ]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2009-6-12 17:38:04 | 只看该作者
额。。就给一个图要分析问题,还真有些难度了,你可以检查一下这些计数器,有没有明显的瓶颈

我只是比较纳闷为啥CPU波动的这么厉害
回复 支持 反对

使用道具 举报

该用户从未签到

3#
 楼主| 发表于 2009-6-12 18:03:56 | 只看该作者
我就是看不懂计数器的图,哪些是正常,哪些是不正常,,才贴出来请教的,那我还要贴哪些图?你才能给我分析分析。。
回复 支持 反对

使用道具 举报

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

    连续签到: 1 天

    [LV.1]测试小兵

    4#
    发表于 2009-6-13 08:18:04 | 只看该作者
    响应时间、网页细分图(如果是b/s结构的),吞吐量、点击数等等,都贴出来。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    5#
     楼主| 发表于 2009-6-15 10:35:01 | 只看该作者

    回复 4# 的帖子

    你要的我都贴出来啦。。小木。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    6#
    发表于 2009-6-15 11:11:31 | 只看该作者
    你看一下 search_flight_datetable 这个 事物,有点问题吧..(不敢断定啊..)
    响应时间越来越大了..
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    7#
    发表于 2009-6-15 11:17:47 | 只看该作者
    还有,这个函数我总觉得怪怪的, 感觉有问题..
    既然都  return 0;  了,说明到这里已经跳出函数了.那么
    free(response);
    free(check);
    就自然不会被释放了...这两句代码走不到了..

    但是你的 response 的定义我也没看明白.. 难道是 全局变量?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    8#
     楼主| 发表于 2009-6-15 11:39:08 | 只看该作者

    回复 7# 的帖子

    我之前都是放在return前面的,当时在场景中运行的时候,总是出现内存访问不到。后来我问一个朋友,他说让我放在return后面,就再也没问题了。response我是用来对结果做判断的,是从服务器返回的xml中返回的字段和我预期的做比较,其实就相当与检查点的。我做性能测试不久,对于这样的事情不知该从哪些方面去分析。你帮我看看,要不加我msn吧。。yhl_1103@163.com
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    9#
    发表于 2009-6-15 12:01:23 | 只看该作者
    看了一下你的图,在目前这个拼发数应该不是你的服务器有瓶颈,应该与你设置你的运行场景有关。
    1.cpu排队应该很少,从这些图上看,不是十分确定cpu的消耗,因为平均值很低。
    2.内存,磁盘,线程都很正常,

    问题:
    1.在运行16分钟时,点击率,吞吐量都很低,而此时cpu开始有些排队,所以此时响应时间比较大,为什么会这样?  此时在处理数据库??

    2.你代码的服务器的地址与你图片显示地址不一致,确定是服务器上数据图片??
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    10#
     楼主| 发表于 2009-6-15 12:26:51 | 只看该作者

    回复 9# 的帖子

    与我设置的运行场景有关是什么意思?是不是我发请求太快了?
    一:在五分钟的时候,用户已经加载到120人,这个结果是我把出发和到达城市参数化了的,而每次查询结果数据库中都有十五分钟的缓存的。服务器没问题的话,那响应时间就一定是出在数据库上吗?
    二:我刚贴的脚本是后来我又连了另一台机器看效果了,此处的结果还是2.73的,没错;

    [ 本帖最后由 Lorita 于 2009-6-15 13:51 编辑 ]
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    11#
    发表于 2009-6-15 12:39:41 | 只看该作者
    我觉得你先一点点解决问题,然后再考虑场景,如果是脚本的问题话,场景也会受影响的.
    1.你的AP 应用服务器 是在什么环境下 ? 是WINDOWS 还是 LINUX UNIX AIX..
    2. 放在return 0 ; 前面报错的原因是 你这个函数中没有对应的 response 和 check 变量的声明. 在这个函数里所用的是外部变量, 那么自然不能在 这个函数里面 free 掉了, 可以把这两句放在这个函数外面free . (例如主函数的return 0 上面..)
    向你这样放函数里面其实这个脚本无论怎么执行都执行不到这两句... 自然没有释放你的内存,循环使用calloc 不是不可以但是会非常慢的,也很可能出现溢出..等等
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    12#
     楼主| 发表于 2009-6-15 13:51:01 | 只看该作者

    回复 11# 的帖子

    你说的对。我刚问开发了,他也说free()在return 后面就执行不到了;
    我们现在的服务器是XP的,现在我测试的程序是要拿到交行再做测试的;
    你说的response和check 我当作全局变量已经在首部定义了,此处的脚本只是一部分,所以你没看见变量定义;
    那我要是不用calloc,用什么做判断呢?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    13#
    发表于 2009-6-15 16:48:47 | 只看该作者
    你分析的方式和方法不对。
    如果认为事务响应时间太长了,应该先分析时间具体耗费到哪里去了,然后再分析什么原因引起了时间过长。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    14#
    发表于 2009-6-15 16:55:50 | 只看该作者
    你可以通过网络细分时间查到。

    几个注意点:
    1、你的第一张图中没有将网络流量加入。
    2、数据库服务器是否和web服务器是同一台,注意要全面监控。
    3、一般来说,常见瓶颈是cpu和网络流量,特别是你这类查询,一般都是数据库的cpu。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    15#
    发表于 2009-6-15 16:58:17 | 只看该作者
    把BOSS都引来了...
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    16#
    发表于 2009-6-15 17:10:14 | 只看该作者
    1、从你给的数据(太少了)看,你的资源使用情况正常到很反常。
    2、就如大漠飞鹰说的,你应该分段跟一下具体的时间消耗。
    3、从直觉上说,你的问题很可能出在数据库查询上,建议查一下索引加了没有,还有你的分页方式。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    17#
    发表于 2009-6-15 18:00:35 | 只看该作者
    response=(char *)calloc(1000,sizeof(char));

    声明个变量为什么要搞的上面这么复杂,声明一个字符串不就行了,根本不用考虑释放内存的问题了。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    18#
     楼主| 发表于 2009-6-16 10:24:36 | 只看该作者

    回复 16# 的帖子

    怎么分段跟一下具体的时间消耗。。我很想知道。。是在场景中有这个计数器吗
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    19#
     楼主| 发表于 2009-6-16 10:59:12 | 只看该作者

    回复 14# 的帖子

    1.我们的数据库用的是DB2.web服务器是websphere.是放在一台机器上的,是选择datebase server  Resource Graphs 中的DB2  对  数据库进行监控吗?然后就是选择Web Application  Server  Graphs中的 Websphere Application Server进行监控?这是不是就是对数据库和web服务器分开进行监控了。。?
    2.网络流量加入是要加network interface吗?我已经加了吞吐量的图了,不也是指的网络流量吗?
    3.昨天开发那边在我做压力的时候,观察程序,然后说是apache的原因导致响应时间变长。。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    20#
     楼主| 发表于 2009-6-16 11:01:34 | 只看该作者

    回复 17# 的帖子

    不分配内存怎么能往变量里传数据呢?会报错的哈。。
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

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

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

    GMT+8, 2024-4-29 05:45 , Processed in 0.091834 second(s), 28 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

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