昨天搭建了集群,实现了负载均衡(尽管还没实现主备分发器自动切换,但是一个网站靠接收/响应请求就把服务器弄崩的应该不多吧),说的挺高大上,但是光说不练假把式,今天趁热打铁,对网站测试下高并发,有朋友推荐使用JMeter,那就来吧。
理了下思路,准备计划如下:
4台2核4G内存的服务器,一台用作主分发器,三台用作业务服务器。
一台6核16G内存服务器;一台8核32G内存服务器。
测试机器为windows系统,i5,6核8G内存(不同的压测机器也会对测试结果造成影响,也可在linux服务器上进行测试,因为只是为了测试负载均衡的效果,我就直接在本机进行测试了);宽带为联通100M。
均不会配置缓存,安装nginx和mariadb。
云服务器带宽相同。地区均为东京云服务器。安装CentOS 8。
计划对3种服务器的进行高并发测试,并同步观察服务器内存情况。
目标参数:没有目标,我也不知道具体会是啥结果。
JMeter需要Java8+的支持,下载java,配置环境变量,一般来讲,会自动配置环境变量
安装JMeter,前往官网下载二进制程序解压即可。
命令控制台进入到JMeter安装目录下的bin目录,输入jmeter.bat,弹出如下画面,证明安装成功。
上面介绍不要用这个GUI界面来做负载测试,好吧,那待会就按照它的指导来吧。
For load testing, use CLI Mode (was NON GUI):jmeter -n -t [jmx file] -l [results file] -e -o [Path to web report folder]
进入到该目录,控制台使用如下代码进行测试
jmeter -n -t D:/jmeter/bin/test/WebTest.jmx -l D:/res.log -e -o D:/Res
所有服务器均已安装nginx,为了保证测试的环境,只放行我的公网IP,也就是说,除了我的IP,谁也无法访问到网站。
安装django,配置mariadb,安装mysqlclient(折腾了一会),上传网站,确定能以公网IP:8000访问到首页。以下测试,每一次都保证了三次以上的测试,确保结果不会出现太大误差。三台服务器搭建的相同的django环境,端口均为8000,页面为首页,从左至右配置依次递增。Content-Length为444。