Jmeter超高并发解决方案

article/2025/9/20 9:58:47

背景
一亿用户量,平均每人每天10次的业务量,要求并发数在5000以上,峰值在5w到10w之间,QPS在25w以上

一、jmeter解决高并发的优化方案
            1.1 优化监听(GUI模式,尽量不考虑)
            1.2 优化监听(Non-GUI命令行模式)
            1.3 结果文件优化(结果数据一定要保存为CSV格式)
            1.4 如果要超高并发建议不要直接使用分布式压测(可以采用多master多slave模式)
            1.5 可以选择用Jmeter + Grafana + InfluxDB的方式,来代替报告文件的生成
            1.6 尽量在linux下执行
 二、Jmeter超高并发实现方案
            采用Jenkins+Jmeter + Grafana + InfluxDB方案,Jenkins,influxdb,Grafana部署到同一台机器(配置尽量往高了搞),Jmeter分别部署到其他服务器,便于Jenkins统一调度
            注:服务器之间内网连接
                    带宽尽量高一些

三,部署
    3.1 Jenkins部署
            参考:http://www.360doc.com/content/21/1209/15/78048805_1007851779.shtml
    3.2 influxDB 部署
        3.2.1 下载安装包
                【官网地址:https://www.influxdata.com/】
                【百度云下载:https://pan.baidu.com/s/1BH8NvzXLd5rnaYUNtLIPng 
                    提取码:nnp3】
        3.2.2 安装
                解压:tar zxvf influxdb-1.8.4_linux_amd64.tar.gz
                将解压后的文件移动到/usr/local/influxdb 路径下
                编辑/usr/local/influxdb/etc/influxdb/influxdb.conf配置文件
                在[[graphite]] 标签下,去掉注释
             
                在[[http]] 标签下,去掉注释
                
                切换到/usr/local/influxdb/usr/bin 目录下,将influxd 做成软链接放到/bin目录下
                ln -s /usr/local/influxdb/usr/bin/influxd /bin
                成功后,可直接influxd启动influxd服务。出现如下信息表示启动influxd服务成功
                
                如果启动不成功,编辑/usr/local/influxdb/etc/influxdb/influxdb.conf中

                bind- address = "127.0.0.1:8088",重新启动即可
                将/usr/local/influxdb/usr/bin 目录下的influx 也做成软链接放到/bin 目录下。
                ln -s /usr/local/influxdb/usr/bin/influx /bin
                现在可以通过influx 命令直接访问influxdb数据库。
                
                下面去创建一个jmeter数据库
                create database jmeter
                具体influxdb的使用命令,可参考:                  https://blog.csdn.net/qq_32014795/article/details/116518364

3.3 Grafana部署

        3.3.1 下载安装包

                  官网下载:Grafana: The open observability platform | Grafana Labs

                 百度云下载:链接:https://pan.baidu.com/s/173m-d735gLmldGPpvRX4hg 
                                        提取码:ncwe
                注:不要下载最新版本,尽量下载8.4.7这个版本,目前8.5.*版本无法导入模板

        3.3.2 安装

                yum install grafana-8.4.7-1.x86_64.rpm

                注:rpm安装需要安装依赖包,尽量使用yum命令安装

                通过rpm -qa | grep grafan查看是否安装成功

                

        3.3.3 启动服务

                systemctl  daemon-reload

                启动grafana 服务:systemctl  start  grafana-server

                查看grafana 状态:systemctl  status grafana-server

                停止grafana 服务:systemctl  stop  grafana-server

                 服务启动好之后,可以通过localhost:3000/login地址访问,如果是要远程访问则需要开启3000的防火墙访问权限,如下:firewall-cmd --zone=public --add-port=3000/tcp --permanent

                 firewall-cmd --reload

        3.3.4 登录

                浏览器输入:ip:3000访问,初始账号密码是admin,admin

         登陆后可修改密码

 3.3.5配置

        在设置-> Data Sources

 Add data source

 搜索influxdb

 配置influxdb

 

接下来是选择仪器表模板,在新建 --> import 中,如下图:

导入模板目前有两种方式,一种是直接通过url 或 模板id进行搜索,一种是通过在grafana官网下载好json格式的模板,手动导入。

 

下面是通过输入模板url地址进行导入模板,如下

模板导入成功后,大致如下: 

 

 3.4 Jmeter配置

        监听器增加后端监听器

 3.6 服务器配置java+Jmeter环境

        多台服务器,尽量配置同样的java及jmeter环境,另外Jmeter所需要的jmx及依赖文件尽量配置相同的路径

        jmeter启动尽量使用shell脚本启动

        如:#!/bin/bash
                cd /data/testinterface/apache-jmeter-5.4.1/bin
                ./jmeter -n -t /data/testinterface/health-code/luohe-test/luohetest.jmx -l report.jtl

   3.7 Jenkins同时调度多台服务器执行Jmeter脚本

         通过Jenkins执行后,结果如下:

        四:总结 

        以上是针对多slave的模式进行,这样有个弊端,就是当并发量特别高的时候,需要更高的带宽来向influxdb写入数据,当然也可以考虑influxdb的集群模式进行

        这种模式也可配合分布式使用,配置多master分布式和多influxdb的模式。


                
                      
        


http://chatgpt.dhexx.cn/article/h2pJbHSP.shtml

相关文章

2023春招面试专题:高并发解决方案

如何理解高并发? 高并发意味着大流量,需要运用技术手段抵抗流量的冲击,这些手段好比操作流量,能让流量更平稳地被系统所处理,带给用户更好的体验。 我们常见的高并发场景有:淘宝的双11、春运时的抢票、微…

高并发解决方案之熔断处理

高并发解决方案之熔断处理 前言概念基本介绍三种状态熔断方式常用框架功能对比使用介绍 参考链接 前言 问题列表 跨系统、跨服务调用第三方接口时,第三方接口响应超时或者服务不可用,发生连锁故障进而导致雪崩效应。 举例说明 假设上游服务是A&#xff…

阿里云高并发解决方案

今天这篇帖子我会讲解一下金蝶财务软件K3_CLOUD高并发部署在阿里云上得解决方案,本篇博客同样适用于其他软件高并发上云部署 以我去年12月份的一个客户项目为例。 做过项目的朋友都知道,小客户比较关注的是成本,大客户关注的是价值和服务。高并发客户一般都会有专业的IT运…

高并发解决方案相关面试题

什么是DNS解析域名 DNS域名解析就是讲域名转化为不需要显示端口(二级域名的端口一般为80)的IP地址,域名解析的一般先去本地环境的host文件读取配置,解析成对应的IP地址,根据IP地址访问对应的服务器。若host文件未配置…

Token高并发解决方案

Token高并发解决方案 一:作为token使用的第三方 客户端模式使用token 可以采用单例模式或定义一个全局变量isRefresh 标志,加同步锁Synchronized来保证token过期的那个时间点,刷新token方法只被调用一次。 二:作为token服务器端…

大数据和高并发解决方案

一、网站应用背景 开发一个网站的应用程序,当用户规模比较小的时候,使用简单的:一台应用服务器一台数据库服务器一台文件服务器,这样的话完全可以解决一部分问题,也可以通过堆硬件的方式来提高网站应用的访问性能&…

电商中常见的高并发解决方案

目录 多级缓存 什么叫多级缓存 多级缓存的实现思路 Redis 缓存同步 MySql 数据 Nginx 限流 什么是限流 常见的限流算法之漏桶算法 nginx 限流的方式 控制速率 控制并发量(连接数) 在本文中,我们将以京东为例,了解电商中…

【数据科学】斯皮尔曼的等级相关系数(Spearman's coefficient)

在统计数据中,斯皮尔曼的等级相关系数或斯皮尔曼的rho,以查尔斯斯皮尔曼命名并经常用希腊字母表示或,是秩相关的非参数度量(两个变量的排名之间的统计依赖性)。它评估了使用单调函数描述两个变量之间关系的程度。 两个…

python 利用Scipy计算person 和spearman相关系数

python 利用Scipy计算person 和spearman相关系数 觉得有用的话,欢迎一起讨论相互学习~ 学习以下两位大佬的讲解 (Pearson)皮尔逊相关系数和spearman相关系数(附python实现) 相关性系数及其python实现 皮尔逊相关系数 下面是皮尔逊相关系数的计算公式…

Python+pandas计算数据相关系数(person、Kendall、spearman)

pandas中DataFrame对象corr()方法的用法,该方法用来计算DataFrame对象中所有列之间的相关系数(包括pearson相关系数、Kendall Tau相关系数和spearman秩相关)。 pandas相关系数-DataFrame.corr()参数详解 DataFrame.corr(methodpearson, min_p…

相关性Correlations 皮尔逊相关系数(pearson)和斯皮尔曼等级相关系数(spearman)

相关性Correlations Correlations,相关度量,目前Spark支持两种相关性系数:皮尔逊相关系数(pearson)和斯皮尔曼等级相关系数(spearman)。相关系数是用以反映变量之间相关关系密切程度的统计指标。…

spearman学习

特征提取,预测都弄完了,现在要检查一下预测的效果。 spearman秩相关系数是度量两个变量之间的统计相关性的指标,用来评估当用单调函数来描述两个变量之间的关系有多好。在没有重复数据的情况下,如果一个变量是另外一个变量的严格…

R语言中进行Spearman等级相关分析

摘要 使用Spearman等级相关性测试两个等级变量或一个等级变量和一个测量变量之间的关联。 如果您担心非正态性,也可以对两个测量变量使用Spearman等级相关性而不是线性回归/相关性,但这通常不是必须的。 宏伟的军舰鸟(军舰鸟magnificens&…

相关系数pearson、spearman、kendall和R语言中的cor/or.test()

相关系数pearson、spearman、kendall和R语言中的cor/cor.test 1. 相关系数pearson、spearman、kendall2. R语言cor函数和cor.test函数 1. 相关系数pearson、spearman、kendall Pearson相关系数很简单,是用来衡量两个数据集的线性相关程度;而Spearman相关…

皮尔逊(Pearson)相关系数与spearman相关系数(Python实现)

概念介绍 相关系数:考察两个事物(在数据里我们称之为变量)之间的相关程度。 相关系数大小解释 相关性绝对值无相关0 - 0.09弱相关0.1 - 0.3中相关0.3 - 0.5强相关0.5 - 1 表中所定的标准从某种意义上说是武断的和不严格的。 对相关系数的解…

3.1 相关系数(person与spearman)

1.1总体皮尔逊(person)相关系数: 在概率论与数理统计中我们学到,若两组数据X{x1,x2…xn}与Y{y1,y2…yn}为总体数据,则总体协方差为 它表示两个变量的总体误差,若XY相对于各自均值同…

斯皮尔曼相关(spearman)系数法

在分析指标与指标、指标与研究对象的影响程度时,很多时候会用到相关系数法,下面介绍一下斯皮尔曼相关系数法。 斯皮尔曼等级相关是根据等级资料研究两个变量间相关关系的方法。它是依据两列成对等级的各对等级数之差来进行计算的,斯皮尔曼等级…

Spearman 相关性分析法,以及python的完整代码应用

Spearman 相关性分析法 简介 Spearman 相关性分析法是一种针对两个变量之间非线性关系的相关性计算方法,同时,它不对数据的分布进行假设。该方法的基本思想是将两个(也可以多个)变量的值进行排序,并计算它们之间的等…

统计学三大相关系数之斯皮尔曼(spearman)相关系数

斯皮尔曼相关性系数,通常也叫斯皮尔曼秩相关系数。“秩”,可以理解成就是一种顺序或者排序,那么它就是根据原始数据的排序位置进行求解,这种表征形式就没有了求皮尔森相关性系数时那些限制。下面来看一下它的计算公式:…

相关系数(皮尔逊pearson相关系数和斯皮尔曼spearman等级相关系数)

目录 总体皮尔逊Person相关系数: 样本皮尔逊Person相关系数: 两点总结: 假设检验:(可结合概率论课本假设检验部分) 皮尔逊相关系数假设检验: 更好的方法:p值判断方法 皮尔逊相…