学习目标
1.了解JMeter的服务器监控工具的安装与配置,学会使用JMeter插件进行都市商城所在服务器的CPU与内存等监控
2.了解Nginx的运行原理,知道反向代理,负载均衡的作用,以及知道如何对其进行配置
常见问题
1.JMeter自动拉伸
在JMeter的选项里,选择外观,选择最后一个WINDOWS CLASSIC.
2.跑都市商城的脚本时,一直有19%左右的错误.
进入到都市商城服务器的/usr/local/web/WebRoot/WEB-INF/classes,
vi config.properties,将最后一行的Jtest=1修改为Jtest=0.保存退出
安装Serveragent并使用JMeter插件进行监控
1.用FTP工具将serveragent传到都市商城服务器的任意目录
2.用unzip命令进行解压unzip ServerAgent-2.2.3.zip
3.如果你的服务器的LINUX中没有unzip命令,那么执行sudo yum install -y unzip zip下载相关命令
4.如果是LINUX环境,执行./startAgent.sh文件,如果是WINDOWS服务器,双击startAgent.bat
5.如果startAgent.sh不能执行,那么需要增加权限,在你的文件夹那一层执行chmod -R 777 ServerAgent-2.2.3
serveragent监听程序的端口号默认是4444.可以用netstat -tpln命令查看目前有哪些端口号在使用.
如果出现防火墙禁用了4444端口,可以选择关闭防火墙,或者将4444端口加入到防火墙规则中.
systemctl status firewalld #查看防火墙状态
systemctl start firewalld #启动防火墙
systemctl stop firewalld #关闭防火墙
systemctl restart firewalld #重启防火墙
systemctl disabled firewalld #禁用防火墙
firewall-cmd --list-ports #列出开放的端口
firewall-cmd --add-port=4444/tcp --permanent #永久添加4444端口
6.打开JMeter,新建线程组和http请求,然后新增一个jp@gc - PerfMon Metrics Collector监听器
在监听器里选择一个文件,用来存放监听的数据.
ADD ROW,添加需要监控的服务器IP地址,与需要监控的内容,如CPU,内存等
如果不想每次运行前提示你是追加还是覆盖,那么可以修改jmeter.properties文件,在1040行附近,
添加resultcollector.action_if_file_exists=APPEND
APPEND,每次运行将新的数据附加到现有文件
ASK每次运行时询问用户
DELETE每次运行时覆盖旧数据
nginx
nginx是一种高性能的http和反向代理服务器.特点是占用内存少,并发能力强.特性:负载均衡,反向代理等.
你的机器→代理→服务器 这个是正向代理
你的机器→服务器→tomcat1,tomcat2... 这个是反向代理
正向代理.局域网中的用户如果要访问外网,必须通过代理服务器来访问,则称之为正向代理.
反向代理是由nginx将多个访问请求按照策略分配给不同的服务器,以减少单个服务器的访问压力.对于用户来说,反向代理是透明的,用户不知道一共有多少个服务器,也不知道访问的是哪一个.他只需要知道他访问的网址能访问就可以了.
反向代理的步骤.
第一步(非必须),修改hosts文件,设置一个域名.
进入C:\Windows\System32\drivers\etc,打开hosts文件,输入你的都市商城的IP 后面写一个域名
第二步,在nginx.conf中修改配置
进入到/usr/local/nginx/conf
vi nginx.conf
用户通过域名访问(www.songqinshop.com),首先hosts分析了这个域名指向的是192.168.80.160,
然后就开始访问192.168.80.160,因为默认端口号是80,所以此时访问的是192.168.80.160:80.然后又因为nginx在监听80端口,所以当80端口被访问时,nginx开始将这个网址转向了http://dsshop;(大约在配置文件47行),然后这个路径又转向了upstream dsshop模块里所配置的地址,也就是127.0.0.1:8083.注意这个127.0.0.1指的是都市商城服务器本地机器,也就是192.168.80.160:8083
负载均衡
在反向代理的基础上,那么就可以实现负载均衡.单个服务器时,承受的负载为n,那么就可以通过增加服务器的数量,让nginx将访问请求分发到各个服务器,比如有m个服务器,每个服务器只要承受n/m的负载.
负载均衡的策略分为轮询,权重,ip_hash,fair,url_hash
轮询,比如有两个服务器,当遇到请求时,nginx会轮流分发到每一个服务器.
权重,给每个服务器设置一个权重,让性能高的服务器接受更多的请求,性能低的服务器接受较少的请求.
ip_hash,一台机器第一次访问的是哪一个服务器,后面就一直访问这个服务器.这种方式可以避免session混乱引起的问题.
fair,根据响应时间来分配服务器
url_hash,根据你请求的url地址来分配服务器
都市商城的负载均衡在nginx.conf文件的upstream dsshop块进行设置
upstream dsshop { ip_hash; #都市商城使用的是ip_hash策略 server 127.0.0.1:8083 weight=1; server 127.0.0.1:8084 weight=1; #server 192.168.10.121:3333 backup; #热备 }
dsshop还需要在location块进行proxy_pass的设置
location / { proxy_pass http://dsshop;
nginx一旦启动之后,访问都市商城时就不再需要输入8083端口号
nginx的一键启动脚本,在/data/startup,执行./a1-start-Nginx.sh
时间同步
在startup目录中查看日期 data
更新服务器时间 ntpdate ntp.aliyun.com
当前时间 data