Jmeter测压

  1.Jmeter-5.1.1下载:http://mirror.bit.edu.cn/apache//jmeter/binaries/apache-jmeter-5.1.1.zip

  2.Jmeter-5.1.1依赖java环境,只支持java8以上的版本,java8官网下载太慢(30k/s),所以我在腾讯软件中心下载的(5M/s)

  3.java8解压后,运行.exe文件进行安装,配置环境变量:JAVA_HOME,PATH,CLASS_PATH后,再cmd执行javac命令,没有报错表示安装完成

  4.解压Jmeter,在/bin目录下找到jmeter.bat,点击运行,弹出黑框启动客户端

            

  5.Jmeter默认英文,但支持中文,设置Options->Choose Language->Chinese

  6.准备完成之后,在Test Plan下新建线程组,设置线程数(并发数),启动时间(花费多长时间达到最大线程数),循环次数(每个线程发送多长次请求,选择永远则一直发)

  7.在线程组下添加http请求,填写内容如下图

  

8.选择监听器,相当于看测压结果的窗口,如下图,各种花里胡哨的图表报告,选择完想看的图表报告之后,点击运行,就开始做给服务器做压力测试了

Tomcat+Nginx负载均衡:

  1.做了测试之后发现Tomcat只能正常支持200多个并发量,当然是可以通过修改Tomcat的默认配置来改变,比如默认内存、默认并发量等。当测试数据达到300后,就会有20%的请求失败,所以需要看看tomcat集群的处理效果怎么样

  2.我搭建环境用的版本是:java8,Tomcat8.5.41解压版(下载:https://tomcat.apache.org/download-70.cgi),nginx-1.16.0(下载:http://nginx.org/en/download.html)

  3.首先保证java服务正常启动,解压tomcat,多复制几个,具体几个看需要;然后挨个该配置文件,第一步:打开/conf/server.xml配置文件修改其中的8005、8009、8080端口,这一步是保证多tomcat之前彼此不重复,第二步:打开/bin/shutdown.bat(停止tomcat)和/bin/startup.bat(运行tomcat),在第一行‘@echo off’下面新启一行,写入‘SET JAVA_HOME=C:\Program Files\Java\jdk1.8.0_191’,这一步是让tomcat能够找到Java环境,然后保存,第三步打开/bin/startup.bat以运行tomcat,打开浏览器测试tomcat是否运行成功。之后的tomcat都重复此操作。

  4.tomcat全部打开后,开始编辑nginx配置文件,打开/conf/nginx.conf,把配置文件改为如下内容,后保存。ip_hash表示Nginx会根据ip来给请求的用户分配tomcat,同一个用户将会被分配给同一个tomcat处理,解决了session保存问题,但是这样会导致请求分配不均匀。

  5.此时运行ngin.exe,就OK了。访问Nginx监听的端口,会发现请求安装配置文件正常的分配给各个tomcat,负载均衡就完成了

  6.当然nginx的功能远不止如此,此处只是单纯实现负载均衡,比如根据url用正则判断实现动静分离、其他的各项设置可以满足各种实际需求,nginx虽然小但功能还是挺强大的,贴一段配置文件详解:

运行用户
user nobody;
启动进程,通常设置成和cpu的数量相等
worker_processes 1;

全局错误日志及PID文件
error_log logs/error.log;
error_log logs/error.log notice;
error_log logs/error.log info;

pid logs/nginx.pid;
工作模式及连接数上限
events {
worker_connections 1024;#单个后台worker process进程的最大并发链接数
}
设定http服务器,利用它的反向代理功能提供负载均衡支持
http {
#设定mime类型,类型由mime.type文件定义
include mime.types;
default_type application/octet-stream;
#设定日志格式
#access_log logs/access.log main;
#sendfile 指令指定 nginx 是否调用 sendfile 函数(zero copy 方式)来输出文件,对于普通应用,
#必须设为 on,如果用来进行下载等应用磁盘IO重负载应用,可设置为 off,以平衡磁盘与网络I/O处理速度,降低系统的uptime.
sendfile on;
#tcp_nopush on;
#连接超时时间
#keepalive_timeout 0;
keepalive_timeout 65;
#服务器设置的最大上传文件大小
client_max_body_size 200m;
#开启gzip压缩
gzip on;
gzip_comp_level 2;
gzip_types text/css application/javascript application/json;
gzip_disable “MSIE [1-6].”;

#设定负载均衡的服务器列表
upstream collectionBackend {
#本机上的Squid开启7002端口
server 127.0.0.1:7002;
}

server {
#侦听80端口
listen 80;
#定义使用localhost访问
server_name localhost;

#默认值90s, nginx连接到后端服务器的连接超时时间
proxy_connect_timeout 90;

#设置了发送请求给upstream服务器的超时时间。超时设置不是为了整个发送期间,而是在两次write操作期间。如果超时后,upstream没有收到新的数据,nginx会关闭连接
proxy_send_timeout 90;

设置与代理服务器的读超时时间。它决定了nginx会等待多长时间来获得请求的响应。这个时间不是获得整个response的时间,而是两次reading操作的时间。
proxy_read_timeout 90;

nginx设置目录浏览及中文乱码问题解决方案:
#charset koi8-r;

#设定日志格式
#access_log logs/host.access.log main;

在这个location配置段中,如果URL请求“/public/logo.gif”,那么nginx将会在服务器上查找“F:/workspace/cloud/bv-frontend-dev/public/logo.gif”文件,即请求的URL中location后面的部分会被追加到alias指定的目录后面,而location后面的“/public”路径将会被自动丢弃。
location /public/ {
alias F:/workspace/cloud/bv-frontend-dev/public/;
}

location / {
#rewrite的主要功能是实现RUL地址的重定向
rewrite ‘^/simple/.*.(html)$’ /simple-index/simple.html last;

rewrite ‘^/simple/.*config.js$’ /simple-index/config.js last;

rewrite ‘^/simple/./custom/(.)’ /simple-index/custom/$1 last;

rewrite ‘^/simple/./api/(.)’ /api/$1 last;

rewrite ‘^/simple/custom/(.*)’ /simple-index/custom/$1 last;

rewrite ‘^/simple/api/(.*)’ /api/$1 last;

alias同上含义:
alias F:/workspace/bestvike/collection-handle/static/;
index index.html;
}

location /simple-index {
alias F:/workspace/bestvike/collection-handle/static/;
}

location /resources/ {
rewrite ‘^/resources/simple/(.*.html)$’ /simple-index/simple/$1 last;
alias F:/workspace/bestvike/collection-handle/static/simple/;
}

location /api/ {

proxy_set_header:允许重新定义或者添加发往后端服务器的请求头.该值可以包含文本、变量和它们的组合。在没有定义proxy_set_header时会继承之前定义的值。默认情况下,只有两个字段被重定义:proxy_set_header Host $proxy_host 和 proxy_set_header Connection close

proxy_set_header X-Real-IP $remote_addr;

proxy_set_header REMOTE-HOST $remote_addr;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

proxy_pass URL,URL为要设置的被代理服务器的地址,包含传输协议、主机名称或IP地址加端口号、URI等要素。
proxy_pass http://collectionBackend/api/;
}

error_page:当发生错误的时候能够显示一个预定义的地址,实际上产生了一个内部跳转(internal redirect),当访问出现500、502、503、504的时候就能返回50x.html中的内容。同时我们也可以自己定义这种情况下的返回状态码。

error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}

   7.nginx基本命令   

nginx #打开 nginx
nginx -t    #测试配置文件是否有语法错误
nginx -s reopen #重启Nginx
nginx -s reload   #重新加载Nginx配置文件,然后以优雅的方式重启Nginx
nginx -s stop  #强制停止Nginx服务
nginx -s quit  #优雅地停止Nginx服务(即处理完所有请求后再停止服务)

nginx [-?hvVtq] [-s signal] [-c filename] [-p prefix] [-g directives]

-?,-h           : 打开帮助信息
-v              : 显示版本信息并退出
-V              : 显示版本和配置选项信息,然后退出
-t              : 检测配置文件是否有语法错误,然后退出
-q              : 在检测配置文件期间屏蔽非错误信息
-s signal       : 给一个 nginx 主进程发送信号:stop(强制停止), quit(优雅退出), reopen(重启), reload(重新加载配置文件)
-p prefix       : 设置前缀路径(默认是:/usr/share/nginx/)
-c filename     : 设置配置文件(默认是:/etc/nginx/nginx.conf)
-g directives   : 设置配置文件外的全局指令

  8.nginx常用的正则表达试

最后,今天因为一些原因没用给负载均衡测压,之后再补测

关于Tomcat+Nginx负载均衡与Jmeter服务器测压的日记的更多相关文章

  1. Tomcat集群,Nginx集群,Tomcat+Nginx 负载均衡配置,Tomcat+Nginx集群

    Tomcat集群,Nginx集群,Tomcat+Nginx 负载均衡配置,Tomcat+Nginx集群 >>>>>>>>>>>> ...

  2. 从零开始学 Java - 利用 Nginx 负载均衡实现 Web 服务器更新不影响访问

    还记得那些美妙的夜晚吗 你洗洗打算看一个小电影就睡了,这个时候突然想起来今天晚上是服务器更新的日子,你要在凌晨时分去把最新的代码更新到服务器,以保证明天大家一觉醒来打开网站,发现昨天的 Bug 都不见 ...

  3. tomcat+nginx负载均衡

    一.       工具 nginx-1.8.0 apache-tomcat-6.0.33 二.    目标 实现高性能负载均衡的Tomcat集群: 三.    步骤 1.首先下载Nginx,要下载稳定 ...

  4. Linux上部署Tomcat+Nginx负载均衡

    前提:配置好了JDK. 我这里是vm上的linux虚拟机,可能不适用于所有情况. 一.Linux上配置Tomcat 1.下载地址:https://tomcat.apache.org/download- ...

  5. [tomcat] tomcat+nginx 负载均衡配置

    首先下载,安装tomcat. 修改tomcat端口,修改server.xml: 1.修改tomcat端口(默认8080) <Connector port="8383" pro ...

  6. tomcat——nginx负载均衡

    Tomcat一般应用在这种小型系统中应用非常广泛,是开发调试jsp的首先应用.Tomcat和其他web软甲一样具有解析HTML语言的功能,但是处理效率远不及Apacge和Nginx,所以Tomcat一 ...

  7. Nginx+Tomcat+Memcached负载均衡集群服务搭建

    操作系统:CentOS6.5  本文档主要讲解,如何在CentOS6.5下搭建Nginx+Tomcat+Memcached负载均衡集群服务器,Nginx负责负载均衡,Tomcat负责实际服务,Memc ...

  8. nginx负载均衡tomcat和配置ssl

    目录 tomcat 组件功能 engine host context connector service server valve logger realm UserDatabaseRealm 工作流 ...

  9. 简单的 Nginx+Tomcat 配置负载均衡集群

    简单 Nginx+Tomcat 配置负载均衡集群 前期准备 解压两个tomcat,修改端口号 server1:8081 server:8082 同时启动 nginx官网下载解压版nginx 创建一个简 ...

随机推荐

  1. Centos8安装docker-compose

    一.首先检查是否有pip 执行命令:piv -V 二.更新pip 执行命令:pip install --upgrade pip 三.下载  setuptools 执行命令 :pip install - ...

  2. 可以用 Python 编程语言做哪些神奇好玩的事情?除了生孩子不能,其他全都行!

    坦克大战 源自于一个用Python写各种小游戏的github合集,star数1k.除了坦克大战外,还包含滑雪者.皮卡丘GOGO.贪吃蛇.推箱子.拼图等游戏. 图片转铅笔画 帮助你快速生成属于自己的铅笔 ...

  3. http_response_code()和header()

    1.http_response_code — 获取/设置响应的 HTTP 状态码向服务器发送成功状态码:http_response_code(200); 返回值如果提供了response_code,将 ...

  4. ElasticSearch 镜像 & 安装 & 简易集群

    目录 ES镜像 JDK镜像 安装 1. 安装JDK 2. 解压安装ES 3. 配置 4. 新建用户 5. 启动 踩坑 1. root启用报错 2. max file descriptors [4096 ...

  5. XEP-0198:流管理

    ------------恢复内容开始------------ 原文来自:https://xmpp.org/extensions/xep-0198.html,只翻译了技术方面的内容. 摘要:这个规范定义 ...

  6. Salesforce吹嘘无代码开发,不用费脑子的人工智能

    Salesforce在星期四举办的Dreamforce '16大会上,开发人员主题演讲可谓面面俱到--听众被舞台包围了,而不是远远地坐在观众席. 这是符合该公司在六月份第一次的开发者大会Trailhe ...

  7. 两种方法直接删除数组中特定值的项(JavaScript)

    一.问题详情: 直接删除意为原数组需要被改变,而不是得到另一个数组. 二.JavaScript实现 (一)巧用数组的push( ).shift( )方法 function del(arr,num) { ...

  8. Win10美吱er吱er,Win10修改默认字体的方法

    请参考以下步骤(需要修改注册表,修改前请先备份,以便在出现问题时能够及时恢复): 例:将系统字体改为宋体 1.Windows+r,输入:regedit 2.定位以下路径:HKEY_LOCAL_MACH ...

  9. UVA-2【NOI2014】起床困难综合症

    #2. [NOI2014]起床困难综合症 21 世纪,许多人得了一种奇怪的病:起床困难综合症,其临床表现为:起床难,起床后精神不佳.作为一名青春阳光好少年,atm 一直坚持与起床困难综合症作斗争.通过 ...

  10. python(面向对象-类封装调用)

    一.面对对象思想 (1)大家肯定听过 Python 中”一切皆对象“的说法,但可能并不了解它的具体含义,只是在学习的时候听说 Python 是面向对象的编程语言,本节将向大家详细介绍 Python 面 ...