负载测试:在一定的工作负荷下,给系统造成的负荷及系统响应的时间。 
压力测试:在一定的负荷条件下,长时间连续运行系统给系统性能造成的影响。 
  
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 及测试(转载)的更多相关文章

  1. 转载:JMeter压力测试入门教程[图文]

    JMeter压力测试入门教程[图文] Apache JMeter是Apache组织开发的基于Java的压力测试工具.用于对软件做压力测试,它最初被设计用于Web应用测试但后来扩展到其他测试领域. 它可 ...

  2. jmeter 压力测试 参数

    Aggregate Report 是 JMeter 常用的一个 Listener,中文被翻译为“聚合报告”.今天再次有同行问到这个报告中的各项数据表示什么意思,顺便在这里公布一下,以备大家查阅. 如果 ...

  3. Jmeter远程测试

    11.3 详解JMeter远程测试(1) 2012-04-09 09:14 温素剑 电子工业出版社 字号:T | T 综合评级: 想读(7)  在读(2)  已读(0)   品书斋鉴(0)   已有9 ...

  4. Jmeter分布式测试的各种坑之jmeter-server修改ip

    第一坑:启动压力机的时候,直接./jmeter-server,会报如下错误 错误原因:127.0.0.1是本机, 一个回路地址, 没有指定地址 正确的启动方式:启动命令加一个参数, IP地址写压力机对 ...

  5. Jmeter 重要测试指标释义

    Aggregate Report 是 JMeter 常用的一个 Listener,中文被翻译为“聚合报告”.今天再次有同行问到这个报告中的各项数据表示什么意思,顺便在这里公布一下,以备大家查阅. 如果 ...

  6. Jmeter压力测试入门操作

    Jmeter压力测试入门   1. 前言 Jmeter 是Apache组织开发的基于Java的压力测试工具,开源并且支持多个操作系统,是一款很好的HTTP测试工具.本篇文章主要的目的是帮助没有接触过J ...

  7. Jmeter性能测试 入门--转载

    转载: Jmeter性能测试 入门 Jmeter是一款优秀的开源测试工具, 是每个资深测试工程师,必须掌握的测试工具,熟练使用Jmeter能大大提高工作效率. 熟练使用Jmeter后, 能用Jmete ...

  8. Jmeter分布式测试dubbo接口2

    上次我们将dubbo接口与jmeter集成起来,但是jmeter是由java实现的,本身有很多限制,无法实现高并发,我们需要借助分布式来实现大压力测试. 在上次的例子中,我们只是实现了简单的dubbo ...

  9. JMeter压力测试简单使用

    原创:转载需注明原创地址 https://www.cnblogs.com/fanerwei222/p/11915535.html JMeter压力测试简单使用: 我们可以使用JMeter来测试一下自己 ...

随机推荐

  1. Linux下搭建mysql

    [准备环境] Linux   centos7 [mysql安装步骤] 1.首先确定centos版本 cat /etc/redhat-release 2.yum安装 yum -y install mar ...

  2. IDEA自定义类注释和方法注释(自定义groovyScript方法实现多行参数注释)

    一.类注释 1.打开设置面板:file -> setting -> Editor -> file and code Templates 选择其中的inclues选项卡,并选择File ...

  3. ssh生成单个公钥

    ssh生成单个公钥命令: ssh-keygen -t rsa -b 4096 -C "your_email@example.com" 查看公钥: cat ~/.ssh/id_rsa ...

  4. SpringBoot — HelloWorld开发部署

    springboot官方推荐使用jdk1.8 一.配置pom.xml 二.Application.java 三.HelloController.java 四.项目运行: Application.jav ...

  5. Spring声明周期的学习心得

    我们首先来看下面的一个案例: 这里是 HelloWorld.java 文件的内容: package com.yiibai;    public class HelloWorld {   private ...

  6. 在树莓派上读取土壤湿度传感器读书-python代码实现及常见问题(全面简单易懂)

    本篇文章简单介绍了如何在树莓派上配置土壤湿度传感器以读取土壤湿度(以百分比的形式出现)及代码实现. 主要包含有以下4个模块: 一.土壤湿度传感器常见类型及介绍 二.实验所需设备 三.设备连线方式与代码 ...

  7. 平时自己常用的git指令

    增删改查 创建标签 $ git tag -a v1.4 -m 'my version 1.4' 用 -a (译注:取 annotated 的首字母)指定标签名字即可 -m 选项则指定了对应的标签说明 ...

  8. P1131 [ZJOI2007]时态同步【树形dp】

    时态同步 从叶子到根节点统计修改次数.树形\(dp\)思想. 题目描述 小\(Q\)在电子工艺实习课上学习焊接电路板.一块电路板由若干个元件组成,我们不妨称之为节点,并将其用数字\(1,2,3-\). ...

  9. jquery ajax 参数列表定义

    出处:http://www.cnblogs.com/tylerdonet/ 1.url         (要求为String类型的参数,(默认为当前页地址)发送请求的地址) 2.type       ...

  10. Sql sever 声明变量,赋值变量

    语句: --声明变量DECLARE @idcard nvarchar () , @rowid nvarchar () --给变量赋值SELECT @idcard = '{0}', @rowid = ' ...