发表于: 2016-06-26 12:57:20
0 2111
【操作步骤】
一、在windows上压测jsp
5、添加监听器(Listener)
线程数5000,Throughtput 80.4 出现Error 14.30%,错误原因:页面无响应
参考链接:
http://www.cnblogs.com/fnng/archive/2012/12/22/2829479.html
二、项目上传服务器,压测jsp页面
①载apache-jmeter-3.0.tgz:http://apache.fayea.com/jmeter/binaries/apache-jmeter-3.0.tgz
export JMETER="/usr/local/jmeter"
export CLASSPATH="$JMETER/lib/ext/ApacheJMeter_core.jar:$JMETER/lib/jorphan.jar:$JMETER
/lib/logkit-2.0.jar:$CLASSPATH"
④成添加后下述命令使配置生效:[root@VM_86_225_centos local]# source /etc/profile
No X11 DISPLAY variable was set, but this program performed an operation which requires it.
【知识总结】
线程数: 虚拟用户数。一个虚拟用户占用一个进程或线程。设置多少虚拟用户数在这里也就是设置多少个
线程数。
准备时长:设置的虚拟用户数需要多长时间全部启动。如果线程数为20 ,准备时长为10 ,那么需要10秒
钟启动20个线程。也就是每秒钟启动2个线程。
循环次数:每个线程发送请求的次数。如果线程数为20 ,循环次数为100 ,那么每个线程发送100次请求。
总请求数为20*100=2000 。如果勾选了“永远”,那么所有线程会一直发送请求,一到选择停止运
行脚本。
2、聚合报告分析
#Samples:表示你这次测试中一共发出了多少个请求,如果模拟20个用户,每个用户迭代10次,那么这
里显示200
Average:平均响应时间——默认情况下是单个 Request 的平均响应时间,当使用了 Transaction
Controller 时,也可以以 Transaction 为单位显示平均响应时间
Median:中位数,也就是 50% 用户的响应时间
90% Line:90% 用户的响应时间
95% Line:95% 用户的响应时间
99% Line:99% 用户的响应时间
Min:最小响应时间
Max:最大响应时间
Error%:本次测试中出现错误的请求的数量/请求的总数
Throughput:吞吐量——默认情况下表示每秒完成的请求数(Request per Second),当使用了
Transaction Controller时,也可以表示类似 LoadRunner 的 Transaction per Second 数
KB/Sec:每秒从服务器端接收到的数据量,相当于LoadRunner中的Throughput/Sec
备注:关于 50% 和 90% 并发用户数的含义,参考链接:http://www.cnblogs.com/jackei/archive/2006/11
/11/557972.html
3、系统吞吐量(TPS)、用户并发量、性能测试概念和公式
① 系统吞度量要素:
一个系统的吞度量(承压能力)与request对CPU的消耗、外部接口、IO等等紧密关联。
单个reqeust 对CPU消耗越高,外部系统接口、IO影响速度越慢,系统吞吐能力越低,反之越高。
② 系统吞吐量几个重要参数:QPS(TPS)、并发数、响应时间
QPS(TPS):每秒钟request/事务 数量
并发数: 系统同时处理的request/事务数
响应时间: 一般取平均响应时间
QPS(TPS)= 并发数/平均响应时间
4、了解Memcache
Memcached是一个免费开源的,高性能的,具有分布式对象的缓存系统,它可以用来保存一些经常存取
的对象或数据,保存的数据像一张巨大的HASH表,该表以Key-value对的方式存在内存中。
1、检查客户端的请求数据是否在memcached中,如有,直接把请求数据返回,不再对数据库进行任何操作。2、如果请求的数据不在memcached中,就去查数据库,把从数据库中获取的数据返回给客户端,同时把数据缓存一份到memcached中(memcached客户端不负责,需要程序明确实现)。3、每次更新数据库的同时更新memcached中的数据,保证一致性。4、当分配给memcached内存空间用完之后,会使用LRU(Least Recently Used,最近最少使用)策略加上到期失效策略,失效数据首先被替换,然后再替换掉最近未使用的数据。
③Memcached特征:
协议简单:它是基于文本行的协议,直接通过telnet在memcached服务器上可进行存取数据操作
基于libevent事件处理:Libevent是一套利用C开发的程序库,它将BSD系统的kqueue,Linux系统的epoll等事件处理功能封装成一个接口,与传统的select相比,提高了性能。
内置的内存管理方式:所有数据都保存在内存中,存取数据比硬盘快,当内存满后,通过LRU算法自动删除不使用的缓存,但没有考虑数据的容灾问题,重启服务,所有数据会丢失。
分布式:各个memcached服务器之间互不通信,各自独立存取数据,不共享任何信息。服务器并不具有分布式功能,分布式部署取决于memcache客户端。
linux下文件的复制、移动与删除,参考链接 http://blog.sina.com.cn/s/blog_7479f7990101089d.html
将tgz文件解压到指定目录,参考链接 http://www.2cto.com/os/201308/233614.html
【错误记录】
1、在服务器上测试程序的时候一直打不开页面,显示Not Found,原来是之前我把pom.xml中name
属性改为了<name>xztask5</name>,改回<name>xztask5 Maven Webapp</name>就
可以了,不知道是什么原因。
【遗留问题】
1、Linux启动jmeter遇到问题:缺少图形界面功能
提示:An error occurred:
①linux负载机环境下,切换到root用户,运行以下命令安装X11
yum -y install xorg-x11-xauth
yum install xorg-x11-server-utils
yum install xorg-x11-server-Xnest
yum install libXtst
②本地机器安装Xming-6-9-0-31-setup.exe,安装成功后并运行
③Xshell进行如下配置,选择SSH—>隧道,选中转发X11连接到,X DISPLAY填写:localhost:0
但是还是打不开图形界面,网上大部分的资料都是这个思路,很困惑。
评论