jmeter 及测试(转载)
负载测试:在一定的工作负荷下,给系统造成的负荷及系统响应的时间。
压力测试:在一定的负荷条件下,长时间连续运行系统给系统性能造成的影响。
1.性能测试(Performance Test):通常收集所有和测试有关的所有性能,通常被不同人在不同场合下进行使用。关注点:how much和how fast
2.负载测试(Load Test):负载测试是一种性能测试,指数据在超负荷环境中运行,程序是否能够承担。
关注点:how much
3.压力测试(Stress Test): 压力测试是一种性能测试,他在系统资源特别低的情况下软件系统运行情况,目的是找到系统在哪里失效以及如何失效的地方。包括:
Spike testing(尖峰冲击测试):短时间的极端负载测试
Extreme testing(极端测试):在过量用户下的负载测试
Hammer testing(锤击测试):连续执行所有能做的操作
E.g.举个跑步的例子进行解释。
1.性能测试,表示在一个给定的基准下,能执行的最好情况。例如,在没有负重的情况下,你跑100米需要花多少时间(这边,没有负重是基准)?
2.负载测试,也是性能测试,但是他是在不同的负载下的。对于刚才那个例子,如果扩展为:在50公斤、100公斤……等情况下,你跑100米需要花多少时间?
3.压力测试,是在压力情况下的性能测试。对于刚才那个例子,如果改为:在一阵强风的情况下,你在负重或没有负重的情况下,跑100米需要花多少时间?
性能测试是动力,负载测试载重,压力测试强度.
用命令判断几个物理CPU,几个核等:
逻辑CPU个数:
# cat /proc/cpuinfo | grep "processor" | wc -l
物理CPU个数:
# cat /proc/cpuinfo | grep "physical id" | sort | uniq | wc -l
每个物理CPU中Core的个数:
# cat /proc/cpuinfo | grep "cpu cores" | wc -l
是否为超线程?
如果有两个逻辑CPU具有相同的”core id”,那么超线程是打开的。
每个物理CPU中逻辑CPU(可能是core, threads或both)的个数:
# cat /proc/cpuinfo | grep "siblings"
但是,这种方法只针对当前进程有效。重新打开一个shell或者开启一个进程,你就会发现参数还是ulimit -n xx修改之前的数字。那么有没有一劳永逸的方法呢?
当然有!那就是修改系统参数。
2、修改linux系统参数。vi /etc/security/limits.conf 添加
* soft nofile 65536
* hard nofile 65536
修改以后保存,注销当前用户,重新登录,执行ulimit -a ,ok ,参数生效了:
[root @localhost ~]# ulimit -a
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 256600
max locked memory (kbytes, -l) 64
max memory size (kbytes, -m) unlimited
open files (-n) 65536
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 10240
cpu time (seconds, -t) unlimited
max user processes (-u) 256600
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
注:
硬限制表明soft限制中所能设定的最大值。 soft限制指的是当前系统生效的设置值。 hard限制值可以被普通用户降低。但是不能增加。 soft限制不能设置的比hard限制更高。 只有root用户才能够增加hard限制值。
可以最大设到:
655350
http://itindex.net/detail/52084-jmeter-tomcat-%E5%8E%8B%E5%8A%9B%E6%B5%8B%E8%AF%95
对Tomcat进行调优后再用Jmeter进行测试
1、增加Tomcat对JVM内存的分配:即 调整虚拟内存
Linux:
在/usr/local/tomcat_home/bin目录下的catalina.sh
添加:JAVA_OPTS='-Xms1024m -Xmx2048m'
要加“m”说明是MB,否则就是KB了,在启动tomcat时会报内存不足。
-Xms:初始值
-Xmx:最大值
-Xmn:最小值
Windows:
在catalina.bat最前面加入
set JAVA_OPTS=-Xms1024m -Xmx2048m
如果用startup.bat启动tomcat,OK设置生效。够成功的分配2048M内存.
但是如果不是执行startup.bat启动tomcat而是利用windows的系统服务启动tomcat服务,上面的设置就不生效了,就是说set JAVA_OPTS=-Xms1024m -Xmx2048m没起作用。
windows服务执行的是bin\tomcat.exe.他读取注册表中的值,而不是catalina.bat的设置.。
解决办法:
修改注册表HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation\Tomcat Service Manager\Tomcat7\Parameters\JavaOptions
原值为
-Dcatalina.home="C:\ApacheGroup\Tomcat 7.0.42"
-Djava.endorsed.dirs="C:\ApacheGroup\Tomcat 7.0.42\common\endorsed"
-Xrs
加入 -Xms1024m -Xmx2048m
重起tomcat服务,设置生效
2、修改线程池并将默认的8080端口修改为9999端口。
即将默认的
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
修改为:
<Connector port="9999" redirectPort="8443"
maxHttpHeaderSize="8192" useBodyEncodingForURI="true"
minProcessors="100" maxProcessors="5000"
maxThreads="5000" minSpareThreads="1000" maxSpareThreads="4000"
enableLookups="false" acceptCount="3500"
compression="on" compressionMinSize="2048"
compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain"
connectionTimeout="60000" disableUploadTimeout="true" debug="0" URIEncoding="UTF-8"/>
3. 禁用DNS查询
当web应用程序向要记录客户端的信息时,它也会记录客户端的IP地址或者通过域名服务器查找机器名转换为IP地址。DNS查询需要占用网络,并且包括可能从很多很远的服务器或者不起作用的服务器上去获取对应的IP的过程,这样会消耗一定的时间。为了消除DNS查询对性能的影响我们可以关闭 DNS查询,方式是修改server.xml文件中的enableLookups参数值: 将其设置为false。
4、修改完后,重启tomcat。
5、在Jmeter的Thread Group中将上面的8080改成9999.
6、重新执行Jmeter,执行10分钟后,保存执行结果,得到如下的执行结果:
catalina.out文件会越来越大,对系统的稳定造成了一定的影响。conf/logging.properties
一般在部署Tomcat后,运行久了,catalina.out文件会越来越大,对系统的稳定造成了一定的影响。
可通过修改conf/logging.properties日志配置文件来屏蔽掉这部分的日志信息。
1 catalina.org.apache.juli.FileHandler.level = WARNING
2 catalina.org.apache.juli.FileHandler.directory = ${catalina.base}/logs
3 catalina.org.apache.juli.FileHandler.prefix = catalina.
将level级别设置成WARNING就可以大量减少日志的输出,当然也可以设置成OFF,直接禁用掉。
一般日志的级别有:
SEVERE (highest value) > WARNING > INFO > CONFIG > FINE > FINER > FINEST (lowest value)
本文转载自:https://my.oschina.net/kenzheng/blog/548534
jmeter 及测试(转载)的更多相关文章
- 转载:JMeter压力测试入门教程[图文]
JMeter压力测试入门教程[图文] Apache JMeter是Apache组织开发的基于Java的压力测试工具.用于对软件做压力测试,它最初被设计用于Web应用测试但后来扩展到其他测试领域. 它可 ...
- jmeter 压力测试 参数
Aggregate Report 是 JMeter 常用的一个 Listener,中文被翻译为“聚合报告”.今天再次有同行问到这个报告中的各项数据表示什么意思,顺便在这里公布一下,以备大家查阅. 如果 ...
- Jmeter远程测试
11.3 详解JMeter远程测试(1) 2012-04-09 09:14 温素剑 电子工业出版社 字号:T | T 综合评级: 想读(7) 在读(2) 已读(0) 品书斋鉴(0) 已有9 ...
- Jmeter分布式测试的各种坑之jmeter-server修改ip
第一坑:启动压力机的时候,直接./jmeter-server,会报如下错误 错误原因:127.0.0.1是本机, 一个回路地址, 没有指定地址 正确的启动方式:启动命令加一个参数, IP地址写压力机对 ...
- Jmeter 重要测试指标释义
Aggregate Report 是 JMeter 常用的一个 Listener,中文被翻译为“聚合报告”.今天再次有同行问到这个报告中的各项数据表示什么意思,顺便在这里公布一下,以备大家查阅. 如果 ...
- Jmeter压力测试入门操作
Jmeter压力测试入门 1. 前言 Jmeter 是Apache组织开发的基于Java的压力测试工具,开源并且支持多个操作系统,是一款很好的HTTP测试工具.本篇文章主要的目的是帮助没有接触过J ...
- Jmeter性能测试 入门--转载
转载: Jmeter性能测试 入门 Jmeter是一款优秀的开源测试工具, 是每个资深测试工程师,必须掌握的测试工具,熟练使用Jmeter能大大提高工作效率. 熟练使用Jmeter后, 能用Jmete ...
- Jmeter分布式测试dubbo接口2
上次我们将dubbo接口与jmeter集成起来,但是jmeter是由java实现的,本身有很多限制,无法实现高并发,我们需要借助分布式来实现大压力测试. 在上次的例子中,我们只是实现了简单的dubbo ...
- JMeter压力测试简单使用
原创:转载需注明原创地址 https://www.cnblogs.com/fanerwei222/p/11915535.html JMeter压力测试简单使用: 我们可以使用JMeter来测试一下自己 ...
随机推荐
- hdoj3791
题目: Problem Description 判断两序列是否为同一二叉搜索树序列 Input 开始一个数n,(1<=n<=20) 表示有n个需要判断,n= 0 的时候输入结束.接下去 ...
- redis过期键的策略
一.过期时间设置: 127.0.0.1:6379> expire key seconds //设置键的过期时间为多少秒 127.0.0.1:6379> setex key seconds ...
- 微信小程序-返回并更新上一页面的数据
小程序开发过程中经常有这种需求,需要把当前页面数据传递给上一个页面,但是wx.navigateBack()无法传递数据. 一般的办法是把当前页面数据放入本地缓存,上一个页面再从缓存中取出. 除此之外还 ...
- 警告Establishing SSL connection without server's identity verification is not recommended
[本文版权归微信公众号"代码艺术"(ID:onblog)所有,若是转载请务必保留本段原创声明,违者必究.若是文章有不足之处,欢迎关注微信公众号私信与我进行交流!] SpringBo ...
- 专家解读:利用Angular项目与数据库融合实例
摘要:面对如何在现有的低版本的框架服务上,运行新版本的前端服务问题,华为云前端推出了一种融合方案,该方案能让独立的Angular项目整体运行在低版本的框架服务上,通过各种适配手段,让Angular项目 ...
- oracle包package的使用
创建包 包头: CREATE OR REPLACE PACKAGE test_pkg IS PROCEDURE update_sal(e_name VARCHAR2,newsal NUMBER); ...
- 【漏洞二】Apache HTTP Server "httpOnly" Cookie信息泄露漏洞
[漏洞] Apache HTTP Server "httpOnly" Cookie信息泄露漏洞 [原因] 服务器问题 Apache HTTP Server在对状态代码400的默认错 ...
- python3大特征之多态
1.什么是多态 多态指的是一类事物有多种形态 例如: 动物有多种形态: 人,狗,猪 在程序中多态指的是,不同对象可以响应相同方法,并可以有自己不同的实现方式 2.为什么需要多态 案例分析: impor ...
- springboot的jar为何能独立运行
欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...
- python+opencv实现图像缩放
x, y = img_.shape[0:2] img_ = cv2.resize(img_, (int(y/2), int(x/2))) 实现图像长宽缩小为原来的一半