前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Linux内网环境分布式压测部署

Linux内网环境分布式压测部署

原创
作者头像
rainsun孙孝强-悦智
修改于 2022-02-28 02:47:02
修改于 2022-02-28 02:47:02
1.6K0
举报

1.背景

XX项目由于在私有云上部署,还未开放互联网,项目组决定在内网环境进行压测环境搭建,提前暴露内网环境下项目接口的性能瓶颈。

2.机器分配

内网环境机器,,通过堡垒机链接跳板机,,在通过跳板机链接20台内网机器进行操作,

一共分配了20台centos机器,部署两个集群,每个集群10台机器,一台控制机、10台压力机(控制机也做压力机)

3.压力机jmeter部署

3.1 jdk安装

1.由于是内网环境,无法通过yum源进行下载,需要通过xshell\xftp将文件先上传到跳板机,在通过跳板机上传到对应机器

2.解压jdk到指定目录,这里使用/usr/bin/java/目录

3./etc/profile添加环境变量

JAVA_HOME=/usr/local/java/jdk1.8.0_181

CLASSPATH=$JAVA_HOME/lib/

PATH=$PATH:$JAVA_HOME/bin

export PATH JAVA_HOME CLASSPATH

4.执行环境变量 source /etc/profile

验证jdk安装成功

java -version

3.2jmeter安装

  1. 在linux下建立安装路径:/root/jmeter
  2. 上传jmeter安装包到/root/jmeter路径下并解压
  3. 建立脚本目录:/root/jmeter/scripts,脚本上传的地址
  4. 建立报告目录:/root/jmeter/report,报告生成存放目录

5./etc/profile添加环境变量

export JMETER_HOME=/usr/local/apache-jmeter-5.4.1

export CLASSPATH=$JMETER_HOME/lib/ext/ApacheJMeter_core.jar:$JMETER_HOME/lib/jorphan.jar:$CLASSPATH

export PATH=$JMETER_HOME/bin:$PATH

6.执行环境变量 source /etc/profile

验证jmeter安装

jmeter -v

以上步骤在Master和Slaves 都进行操作相同的操作

3.3修改压力机配置参数

  1. 修改压力机slaves配置参数,在/root/jmeter/apache-jmeter-5.4.1/bin 目录下修改jmeter.properties文件
  2. 修改 server_port 端口

默认1009

可修改任意端口,但不能已被占用

3.修改 server.rmi.port 端口

和 server_port 保持一致即可

4.设置 server.rmi.ssl.disable

默认 false,代表需要认证

设置为 true,减少不必要的麻烦

5.修改 remote_hosts

remote_hosts=本机IP地址:端口号

6.系统在HOSTS文件中进行类似 本机IP 主机名的配置,如10.0.0.23 zhoucentos,否则启动jmeter server会报错!

首先,我们来查看本机ip和hostname

然后通过 vi /etc/hosts进行配置,将ip和hostname配置进去并保存。每台机器都配置

7.检查防火墙是否关闭

检查防火墙状态命令:systemctl status firewalld.service

8.环境优化

详见章节4

4. 环境优化

1)配置jmeter的使用内存,根据实际服务器和测试需求量来修改

vi /root/jmeter/apache-jmeter-5.4.1/bin/jmeter

166行修改

: "${HEAP:="-Xms8g -Xmx8g -XX:MaxMetaspaceSize=2048m"}"

bin目录下重启;

nohup jmeter-server -Djava.rmi.server.hostname=172.27.16.33 &

验证:

ps -ef | grep jmeter

2)优化linux内存参数 修改limits.conf文件,并添加:

#vi /etc/security/limits.conf

* soft nofile 102400

* hard nofile 102400

* soft nproc 65535

* hard nproc 65535

重新打开SSH终端,执行如下命令查看是否生效

ulimit -n

3)修改/etc/sysctl.conf文件,并添加:

vi /etc/sysctl.conf

net.ipv4.tcp_syncookies = 0

fs.file-max = 12553500

fs.nr_open = 12453500

kernel.shmall= 1048576

kernel.shmmax = 1887436

kernel.msgmax = 65536

kernel.sysrq = 0

kernel.pid_max= 65536

net.core.netdev_max_backlog = 2000000

net.core.rmem_default = 699040

net.core.rmem_max = 50331648

net.core.wmem_default = 131072

net.core.wmem_max = 33554432

net.core.somaxconn = 65535

net.ipv4.ip_nonlocal_bind = 1

net.ipv4.tcp_max_orphans = 3276800

net.ipv4.tcp_mem = 1048576 1572864 2097152

net.ipv4.tcp_rmem = 4096 4194304 8388608

net.ipv4.tcp_wmem = 4096 4194304 8388608

net.ipv4.tcp_slow_start_after_idle = 0

net.ipv4.tcp_synack_retries = 1

net.ipv4.tcp_window_scaling = 1

vm.swappiness = 0

#TCP connection recovery

net.ipv4.tcp_max_tw_buckets = 6000000

net.ipv4.tcp_tw_reuse = 1

net.ipv4.tcp_tw_recycle = 1

net.ipv4.tcp_fin_timeout = 30

net.ipv4.route.max_size = 5242880

net.ipv4.ip_forward = 1

#0表示不开启检查时间错,建议设置0

net.ipv4.tcp_timestamps = 0

#开启对于TCP时间戳的支持,若该项设置为0,则下面一项设置不起作用

#TCP connection manager

net.ipv4.tcp_max_syn_backlog = 655360

net.ipv4.tcp_syn_retries = 6

net.ipv4.tcp_retries1 = 3

net.ipv4.tcp_retries2 = 6

#TCP keepalive

net.ipv4.ip_local_port_range = 1025 65534

net.ipv4.tcp_keepalive_time = 30

net.ipv4.tcp_keepalive_intvl = 30

net.ipv4.tcp_keepalive_probes = 3

输入下面的命令,让内核参数生效:

sysctl -p

5.控制机部署

控制机jmeter部署和压力机一样(参考3.1、3.2)

修改控制机配置参数,在/root/jmeter/apache-jmeter-5.4.1/bin 下jmeter.properties文件

如果控制机也测试则加 ,然后修改 server_port 、 server.rmi.port、server.rmi.ssl.disable(和压力机一样步骤)

remote_hosts=压力机IP地址:端口号,压力机IP地址:端口号

多台可以用英文逗号分开,控制机也可以作为压力机

配置mode,去掉前面#

6.执行分布式压测脚本

在全部压力机上执行jmeter后台启动命令:

nohup jmeter-server -Djava.rmi.server.hostname=分压机ip &

任意目录执行全部压力机压测脚本

jmeter -r -n -t /root/jmeter/scripts/**.jmx

执行指定压力机压测(这里172.27.16.20为压力机ip)

sh jmeter -n -t /root/jmeter/scripts/XX.jmx -R 172.27.16.20

7.停止压测程序

cd 进入到JMeter 的 bin 目录下

输入 ./shutdown.sh 命令停止脚本

注:如果在分布式压测过程中,想要终止压测,千万不要在Linux上按 ctrl + c 强制终止程序,这样会知道主程序挂了之后,从机未接受到执行,会一直持续运行。当你再次从主机上运行脚本,从机仍然会在上一个脚本的程序中运行。

如果想要终止程序,可以执行命令行./shutdown.sh ,通知master终止程序,然后master 再去通知salve停止运行。

8.Meter+Grafana+Influxdb

这里为了方便我们监控压测过程中的QPS、线程数、95分值,可以使用grafana控制面板来对数据进行展示我们将grafana部署在控制机上;

grafana的部署不在这里细讲,感兴趣的同学可以查看腾讯云的这篇文章;

JMeter+Grafana+Influxdb搭建可视化性能测试监控平台https://cloud.tencent.com/developer/article/1809013

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Jmeter(四十七) - 从入门到精通高级篇 - 分布式压测部署之负载机的设置(详解教程)
  千呼万唤始出来,这一篇感觉写了好久,总想写的清楚明白简洁,但是还是洋洋洒洒写了好多,希望大家喜欢吧!本来打算将这一篇文章是放在性能测试中讲解和分享的,但是有的童鞋或者小伙伴们私下问的太多了,实在是忍不了也解答烦了,索性就在这里分享一下吧。权当参考,但是希望对大家有所帮助。
北京-宏哥
2021/06/01
4.1K0
Jmeter(四十七) - 从入门到精通高级篇 - 分布式压测部署之负载机的设置(详解教程)
Jmeter分布式压测部署说明
Jmeter是基于Java的压力测试工具,在单台windows上使用Jmeter进行性能测试时,对本机的CPU和内存消耗是比较大的,如果并发数大(比如100、300...并发),很容易导致资源不足,吞吐量也无法达到理想的要求。于是我们想通过cmd命令行或者在Linux上使用Jmeter进行性能测试,能够大大缩减所需要的系统资源。客户端机器(window系统或者Linux服务器)作为一个控制器Master,控制多台slave机器的操作。
muntainyang
2020/09/22
2.8K0
Jmeter分布式压测部署说明
【Jmeter篇】Jmeter踩坑记—分布式调度压测部署(二)
1、查看控制机、执行机ip,将控制机jmeter-5.0\bin中jmeter.properties文件remote_hosts=127.0.0.1修改为remote_hosts=127.0.0.1:1099,192.168.0.105:1099其中127.0.0.1为控制机ip,192.168.0.105为执行机ip
王大力测试进阶之路
2019/10/25
2.5K0
【Jmeter篇】Jmeter踩坑记—分布式调度压测部署(二)
Jmeter分布式压测环境搭建
windows环境部署 1.安装环境变量 下载JDK,可以在oracle官网下载,也可以使用百度网盘下载 链接: https://pan.baidu.com/s/1QncVzXbJmKr8jzl-f0
谭银
2022/01/26
2.2K0
JMeter分布式压测环境搭建
在使用JMeter进行压测时,当被测接口需要很高的并发量,或者有些接口访问数很高的时候,Linux网络相关的内核参数需要根据实际服务进行调整,从而导致本地端口被占满,出现请求报错的情况。此时,本机的一些TCP配置、本机性能峰值就可能是性能测试的瓶颈点。 因此,本文梳理了基于JMeter的分布式压测环境的搭建方法,并能够满足参数化的需求。
用户5521279
2020/04/17
1.2K0
JMeter分布式压测环境搭建
jmeter入门实操,简单上手分布式压测
首先第一步下载安装包,官网下载地址https://jmeter.apache.org/download_jmeter.cgi,windows系统和linux用一个。注:jmeter5.4.3需要java8及以上版本。
怪盗LYL
2022/06/13
2.8K0
jmeter入门实操,简单上手分布式压测
基于JMeter开展性能测试(插件、监控、分布式压测)!
安装jdk1.8:默认安装,配置环境变量,新建系统变量JAVA_HOME 值:jdk的安装路径
测试开发技术
2022/09/28
9180
Jmeter系列(39)- Jmeter 分布式测试
https://www.cnblogs.com/poloyy/category/1746599.html
小菠萝测试笔记
2020/07/08
4K1
Jmeter分布式部署
1、Jmeter分布式测试时,选择其中一台作为控制机(Controller),其它机器做为代理机(Agent)。
用户10443079
2023/03/21
9820
Jmeter分布式部署
5分钟内快速搞定Jmeter集群压测环境~
张三累啊,感到了生活的不容易,他矜矜业业干活,日复一日,年复一年,终于攒够了第一桶金,完成了原始积累~
测试开发囤货
2021/08/11
2.9K0
5分钟内快速搞定Jmeter集群压测环境~
聊一聊,JMeter分布式性能测试!
在做后端服务器性能测试中,我们会经常听到'分布式'。但你是否了解分布式呢?今天,我们就来给大家讲讲,在企业实战中,如何使用分布式进行性能测试,实战过程中,又有哪些地方要特别注意?
测试开发技术
2024/01/05
3270
聊一聊,JMeter分布式性能测试!
搭建 Apache Jmeter 分布式压测与监控,真那么难搞定?|实战干货
对于运维工程师来说,需要对自己维护的服务器性能瓶颈了如指掌,比如我当前的架构每秒并发是多少,我服务器最大能接受的并发是多少,是什么导致我的性能有问题;如果当前架构快达到性能瓶颈了,是横向扩容性能提升大,还是纵向扩容性能提升大。
民工哥
2020/09/15
1.1K0
搭建 Apache Jmeter 分布式压测与监控,真那么难搞定?|实战干货
JMeter JMeter远程分布式联机性能测试
当一个JMeter客户端因网络限制等因素,无法模拟足够的用户对服务器施压时,需要用到JMeter分布式测试:用一台控制机,控制多台远程负载机,同时对服务器施压。
授客
2019/09/10
2K0
JMeter JMeter远程分布式联机性能测试
23-分布式
Slave上的机器执行完全按照Master机器的指令执行。包括场景、脚本。所以我们只需要修改master上的脚本就可以了,无需修改slave上的内容
zx钟
2021/07/06
3200
JMETER如何分布式压测
JMeter分布式压测是一种通过多台计算机共同工作来模拟大量并发用户对服务器或应用程序进行压力测试的方法。这种方法可以有效地提高测试的并发用户数,从而更准确地评估系统在高负载下的性能。以下是进行JMeter分布式压测的基本步骤:
JaneYork
2024/05/25
1760
【Jmeter篇】Jmeter分布式调度压测部署
Jmeter 是java 应用,对于CPU和内存的消耗比较大,因此,当需要模拟数以千计的并发用户时,使用单台机器模拟所有的并发用户就有些力不从心,甚至会引起JAVA内存溢出错误。为了让jmeter工具提供更大的负载能力,jmeter短小精悍一有了使用多台机器同时产生负载的机制
王大力测试进阶之路
2019/10/25
1.9K0
【Jmeter篇】Jmeter分布式调度压测部署
Jmeter系列之《14.分布式性能测试》
1、分布式测试中,选择一台作为控制机(Contorller),其他的机器作为测试执行的执行机(Agent);
清菡
2022/06/21
4150
Jmeter系列之《14.分布式性能测试》
jmeter分布式环境
搭建jmeter分布式环境     (1)确定分布式结构,即1台机器部署master、几台机器部署slave?     (2)将相同版本的jmeter分别拷贝到这几台机器     (3)修改master节点的jmeter配置,修改如下两个文件              修改apache-jmeter-3.0/bin/jmeter.properties 文件,在这个文件中增加如下配置:              remote_hosts=xx.xx.xx.xx1:1080,xx.xx.xx.xx2:1081,
千往
2018/01/24
6410
可以收藏的JMeter分布式踩坑大全
关于jmeter分布式压测如何搭建网上的文章很多,搭建过程本文不再赘述,主要讨论可能的报错以及解决方案,下面的内容可能查阅的频率很高,强烈建议收藏。
周辰晨
2020/05/22
2.2K0
Jmeter测试TCP最大连接数
近期有个需求,需要测试下 SLB 的四层负载均衡性能,即测试 TCP 的最大连接数和连接速度。本次测试我们选择使用 Jmeter。
Python研究所
2022/06/17
4K0
Jmeter测试TCP最大连接数
推荐阅读
相关推荐
Jmeter(四十七) - 从入门到精通高级篇 - 分布式压测部署之负载机的设置(详解教程)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档