樱qq 发表于 2011-9-13 20:49:40

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

最近公司测试一个接口,数据库采用Mongo

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

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

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

如何判断是由于数据库还是由于程序算法导致的瓶颈呀?

樱qq 发表于 2011-9-13 20:49:58

:lol自己顶一个。。大家帮帮忙

shigejinian1 发表于 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进程数的调整。

liangdd 发表于 2011-9-14 17:56:28

1.先说下这个接口是做什么的?你写还是查?
2.你说的CPU高是前段还是DB服务器?
3.你的服务器架构啥样?
这些最基本的要提供

樱qq 发表于 2011-9-15 10:55:42

回复4#的话

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

msnshow 发表于 2011-9-15 13:53:09

先减少用户数吧

superwang001 发表于 2011-9-15 17:58:09

这个有几种可能:

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

jj_ljw 发表于 2011-9-15 23:15:30

有错误信息吧,先看看为啥出错
页: [1]
查看完整版本: lr结果分析,TPS很低,则CPU和内存暴涨