51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

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

[原创] lr结果分析,TPS很低,则CPU和内存暴涨

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2011-9-13 20:49:40 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
最近公司测试一个接口,数据库采用Mongo

并发策略:并发400个用户,每3秒加载5个用户,持续运行30分钟
数据量:8000条左右

压测结果发现:
TPS始终在5左右
而CPU高达99%,内存使用情况也高达1.7G
网卡流量145K

请问这种情况,是哪里的性能出现问题?

如何判断是由于数据库还是由于程序算法导致的瓶颈呀?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
 楼主| 发表于 2011-9-13 20:49:58 | 只看该作者
自己顶一个。。大家帮帮忙
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2011-9-14 15:01:37 | 只看该作者
你这个CPU和内存监控的得是web服务器 就是部署程序的机器。
1、尝试查看出现这类情况时候数据库process,看看是否是当时进程到达了所设置的进程数上限。如果是则调整数据库进程数上限再测试
2、尝试查看程序连接池设置的最大连接数,如果程序设置的最大连接数上限很小,调整上限在测试看看
进程排队是合理现象,但是需要在当前硬件环境下,将其控制在可接受范围内。
如果经过调整过数据库进程上限和最大连接数,仍然无法解决问题,找到你的脚本
假设你的脚本顺序是(其中a,b,c代表的是程序模块)
web_submit_data(a);
web_submit_data(b);
web_submit_data(c);
分别找出他们在analysis中的响应时间,按照顺序从第一个响应时间长的系统模块开始调优,就是调整程序的算法或者SQL。假如响应时间 b>c>a,那么就先调整b,之后再测试。因为有可能是由于b排队导致c无法正常执行所以才响应时间漫长的。
以上仅供参考,没有用过mongodb,数据库进程数我参考的是oracle进程数的调整。
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2011-9-14 17:56:28 | 只看该作者
1.先说下这个接口是做什么的?你写还是查?
2.你说的CPU高是前段还是DB服务器?
3.你的服务器架构啥样?
这些最基本的要提供
回复 支持 反对

使用道具 举报

该用户从未签到

5#
 楼主| 发表于 2011-9-15 10:55:42 | 只看该作者
回复4#的话

1. 接口是取数据GET操作
2. CPU高是应用服务器那台机子的CPU高,数据库没有监测
3. 服务器架构采用nginx
回复 支持 反对

使用道具 举报

  • TA的每日心情
    奋斗
    2022-5-8 19:23
  • 签到天数: 137 天

    连续签到: 1 天

    [LV.7]测试师长

    6#
    发表于 2011-9-15 13:53:09 | 只看该作者
    先减少用户数吧
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    7#
    发表于 2011-9-15 17:58:09 | 只看该作者
    这个有几种可能:

    1.你的服务器出错了,cpu很高,你可以查查日志
    2.服务器处理能力很低,占用cpu很高,但是处理量很少
    3.内存发生泄露,或者内存不能释放,重复读写频繁,导致内存持续增大,cpu无法处理
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    8#
    发表于 2011-9-15 23:15:30 | 只看该作者
    有错误信息吧,先看看为啥出错
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

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

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

    GMT+8, 2024-11-16 07:40 , Processed in 0.073995 second(s), 27 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

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