压测实操--produce压测方案

作者:九月

环境信息:

操作系统centos7.9,kafka版本为hdp集群中的2.0版本。

Producer相关参数

使用Kafka自带的kafka-producer-perf-test.sh脚本进行压测,该脚本参数为:

请添加图片描述

在producer涉及到性能的关键因素可能会存在如下几个:

thread:测试时的单机线程数;

bath-size:处理的数据批次大小;

ack:主从同步策略,在生产消息时特别需要注意,是follower收到后返回还是只是leader收到后返回,这对于吞吐量影响颇大;

message-size:单条消息的大小,要在producer和broker中设置一个阈值,且它的大小范围对吞吐量也有影响;

compression-codec:压缩方式,目前有不压缩,gzip,snappy,lz4四种方式;

partition:分区数,主要是和线程复合来测试;

replication:副本数;

througout:所需要的吞吐量,单位时间内处理消息的数量,可能对处理消息的延迟有影响;

linger.ms:两次发送时间间隔,满足后刷一次数据。

produce测试

目前kafka堆内存为1G下进行

请添加图片描述

创建topic名称为test_kafka_perf1,partition=3、replication=3。

bath-size

bath-size=1000

./kafka-producer-perf-test.sh  --topic test_kafka_perf1     --num-records 100000000 --record-size 687 --producer-props bootstrap.servers=172.16.120.30:6667,172.16.120.36:6667,172.16.120.37:6667   batch.size=	1000   --throughput 30000

请添加图片描述

请添加图片描述

请添加图片描述

请添加图片描述

请添加图片描述

kafka指标

kafka仪表盘限制topic条件,获取仪表盘指标。

fetch请求延迟正增长,延迟在执行命令过程中逐渐增高。

请添加图片描述

produce请求延迟正增长,延迟在执行命令过程中逐渐增高

请添加图片描述

请添加图片描述

请添加图片描述

bath-size=2000

./kafka-producer-perf-test.sh  --topic test_kafka_perf1     --num-records 100000000 --record-size 687 --producer-props bootstrap.servers=172.16.120.30:6667,172.16.120.36:6667,172.16.120.37:6667   batch.size=2000   --throughput 30000

具体指标仪表盘与上述条件一致。

bath-size=10000

./kafka-producer-perf-test.sh  --topic test_kafka_perf1     --num-records 100000000 --record-size 687 --producer-props bootstrap.servers=172.16.120.30:6667,172.16.120.36:6667,172.16.120.37:6667   batch.size=10000   --throughput 30000

bath-size=20000

./kafka-producer-perf-test.sh  --topic test_kafka_perf1     --num-records 100000000 --record-size 687 --producer-props bootstrap.servers=172.16.120.30:6667,172.16.120.36:6667,172.16.120.37:6667   batch.size=20000   --throughput 30000

ack

ack=0

./kafka-producer-perf-test.sh  --topic test_kafka_perf1 --num-records  100000000 --record-size 687  --producer-props   bootstrap.servers=172.16.120.30:6667,172.16.120.36:6667,172.16.120.37:6667  batch.size=5000 acks=0   --throughput 30000

ack=1

./kafka-producer-perf-test.sh  --topic test_kafka_perf1 --num-records  100000000 --record-size 687  --producer-props   bootstrap.servers=172.16.120.30:6667,172.16.120.36:6667,172.16.120.37:6667  batch.size=5000 acks=1   --throughput 30000

ack=-1

./kafka-producer-perf-test.sh  --topic test_kafka_perf1 --num-records  100000000 --record-size 687  --producer-props   bootstrap.servers=172.16.120.30:6667,172.16.120.36:6667,172.16.120.37:6667  batch.size=5000 acks=-1   --throughput 30000

message-size

record-size =687

./kafka-producer-perf-test.sh  --topic test_kafka_perf1 --num-records 100000000 --record-size 687  --producer-props   bootstrap.servers=172.16.120.30:6667,172.16.120.36:6667,172.16.120.37:6667  batch.size=5000 acks=-1  --throughput 30000

record-size =454

./kafka-producer-perf-test.sh  --topic test_kafka_perf1 --num-records 100000000 --record-size 454  --producer-props   bootstrap.servers=172.16.120.30:6667,172.16.120.36:6667,172.16.120.37:6667  batch.size=5000 acks=-1  --throughput 30000

compression-codec

compression.type=none

batch.size=5000,并发量在30000

./kafka-producer-perf-test.sh  --topic test_kafka_perf1 --num-records  100000000 --record-size 687  --producer-props   bootstrap.servers=172.16.120.30:6667,172.16.120.36:6667,172.16.120.37:6667  batch.size=5000 acks=1 compression.type=none  --throughput 30000

batch.size=10000,并发量在50000

./kafka-producer-perf-test.sh  --topic test_kafka_perf1 --num-records  100000000 --record-size 687  --producer-props   bootstrap.servers=172.16.120.30:6667,172.16.120.36:6667,172.16.120.37:6667  batch.size=10000 acks=1 compression.type=none  --throughput 50000

compression.type=gzip

batch.size=5000,并发量在30000

./kafka-producer-perf-test.sh  --topic test_kafka_perf1 --num-records  100000000 --record-size 687  --producer-props   bootstrap.servers=172.16.120.30:6667,172.16.120.36:6667,172.16.120.37:6667  batch.size=5000 acks=1 compression.type=gzip  --throughput 30000

compression.type=snappy

batch.size=5000,并发量=30000

./kafka-producer-perf-test.sh  --topic test_kafka_perf1 --num-records  100000000 --record-size 687  --producer-props   bootstrap.servers=172.16.120.30:6667,172.16.120.36:6667,172.16.120.37:6667  batch.size=5000 acks=1 compression.type=lz4  --throughput 30000

compression.type=lz4

batch.size=5000,并发量=30000

./kafka-producer-perf-test.sh  --topic test_kafka_perf1 --num-records  100000000 --record-size 687  --producer-props   bootstrap.servers=172.16.120.30:6667,172.16.120.36:6667,172.16.120.37:6667  batch.size=5000 acks=1 compression.type=lz4  --throughput 30000

partition

partition=1

./kafka-topics.sh --create  --zookeeper mutong01:2181,mutong02:2181,mutong03:2181  --topic test_kafka_perf1  --partitions 1 --replication-factor 1
./kafka-producer-perf-test.sh  --topic test_kafka_perf1 --num-records  100000000 --record-size 687  --producer-props   bootstrap.servers=172.16.120.30:6667,172.16.120.36:6667,172.16.120.37:6667  batch.size=5000 acks=1 compression.type=lz4  --throughput 30000

partition=2

./kafka-topics.sh --create  --zookeeper mutong01:2181,mutong02:2181,mutong03:2181  --topic test_kafka_perf1  --partitions 2 --replication-factor 1
./kafka-producer-perf-test.sh  --topic test_kafka_perf2 --num-records  100000000 --record-size 687  --producer-props   bootstrap.servers=172.16.120.30:6667,172.16.120.36:6667,172.16.120.37:6667  batch.size=5000 acks=1 compression.type=lz4  --throughput 30000

partition=3

./kafka-topics.sh --create  --zookeeper mutong01:2181,mutong02:2181,mutong03:2181  --topic test_kafka_perf1  --partitions 3 --replication-factor 1
./kafka-producer-perf-test.sh  --topic test_kafka_perf3 --num-records  100000000 --record-size 687  --producer-props   bootstrap.servers=172.16.120.30:6667,172.16.120.36:6667,172.16.120.37:6667  batch.size=5000 acks=1 compression.type=lz4  --throughput 30000

replication

replication=1

./kafka-topics.sh --create  --zookeeper mutong01:2181,mutong02:2181,mutong03:2181  --topic test_kafka_perf1  --partitions 1 --replication-factor 1
./kafka-producer-perf-test.sh  --topic test_kafka_perf1 --num-records  100000000 --record-size 687  --producer-props   bootstrap.servers=172.16.120.30:6667,172.16.120.36:6667,172.16.120.37:6667  batch.size=5000 acks=1 compression.type=lz4  --throughput 30000

replication=2

./kafka-topics.sh --create  --zookeeper mutong01:2181,mutong02:2181,mutong03:2181  --topic test_kafka_perf4  --partitions 1 --replication-factor 2
./kafka-producer-perf-test.sh  --topic test_kafka_perf4 --num-records  100000000 --record-size 687  --producer-props   bootstrap.servers=172.16.120.30:6667,172.16.120.36:6667,172.16.120.37:6667  batch.size=5000 acks=1 compression.type=lz4  --throughput 30000

replication=3

./kafka-topics.sh --create  --zookeeper mutong01:2181,mutong02:2181,mutong03:2181  --topic test_kafka_perf5  --partitions 1 --replication-factor 3
./kafka-producer-perf-test.sh  --topic test_kafka_perf5 --num-records  100000000 --record-size 687  --producer-props   bootstrap.servers=172.16.120.30:6667,172.16.120.36:6667,172.16.120.37:6667  batch.size=5000 acks=1 compression.type=lz4  --throughput 30000

throughput

./kafka-topics.sh --create  --zookeeper mutong01:2181,mutong02:2181,mutong03:2181  --topic test_kafka_perf1  --partitions 1 --replication-factor

throughput=10000

./kafka-producer-perf-test.sh  --topic test_kafka_perf1 --num-records  100000000 --record-size 687  --producer-props   bootstrap.servers=172.16.120.30:6667,172.16.120.36:6667,172.16.120.37:6667  batch.size=5000 acks=1  --throughput 10000

throughput=30000

./kafka-producer-perf-test.sh  --topic test_kafka_perf1 --num-records  100000000 --record-size 687  --producer-props   bootstrap.servers=172.16.120.30:6667,172.16.120.36:6667,172.16.120.37:6667  batch.size=5000 acks=1  --throughput 30000

throughput=50000

./kafka-producer-perf-test.sh  --topic test_kafka_perf1 --num-records  100000000 --record-size 687  --producer-props   bootstrap.servers=172.16.120.30:6667,172.16.120.36:6667,172.16.120.37:6667  batch.size=5000 acks=1  --throughput 50000

throughput=80000

./kafka-producer-perf-test.sh  --topic test_kafka_perf1 --num-records  100000000 --record-size 687  --producer-props   bootstrap.servers=172.16.120.30:6667,172.16.120.36:6667,172.16.120.37:6667  batch.size=5000 acks=1  --throughput 80000

throughput=100000

./kafka-producer-perf-test.sh  --topic test_kafka_perf1 --num-records  100000000 --record-size 687  --producer-props   bootstrap.servers=172.16.120.30:6667,172.16.120.36:6667,172.16.120.37:6667  batch.size=5000 acks=1  --throughput 100000

结论

使用kafka自带的kafka-producer-perf-test.sh脚本对集群生产消息情况进行压测,根据业务情况设置要测试的num-records条数。不同的变量因素,通过修改其中一个变量条件,固定其余变量值,获取对应的吞吐速率。比如修改batch-size条件,其他变量保持不变,根据结果就可以获取每秒的生产消息大小和每秒的消费消息条数等指标,整理不同条件下的指标结果,形成曲线就可以观察具体的消费趋势。

比如batch-size条件下:

batch-sizeackmessage-sizecompression-codecpartitionreplicationthroughputmb/smsgnum/s
10000687none333000013.117550
20000687none333000021.630540
50000687none333000021.230044
100000687none333000021.129987
200000687none33300002130005

请添加图片描述

更多技术信息请查看云掣官网https://yunche.pro/?t=yrgw

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/875431.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

记录|使用HslCommunication库进行写入Real数据的坑

项目场景: 现在已经通过HslCommunication连接上了PLC,需要对DB1.DBD10的位置处进行数据写入。 问题描述 但是进行将12.2写入指定位置DB1.DBD10时,发现无法从博图中实时检测到数据的写入。 下面是我当时错误的数据写入方法:【主…

光伏发电管理软件:光伏企业的核心驱动力

光伏产业面对日益增长的装机容量、复杂多变的运维需求以及激烈的市场竞争,光伏企业如何高效管理、优化运营、提升效益,成为了行业关注的焦点。在此背景下,鹧鸪云光伏发电管理软件应运而生,并逐渐成为光伏企业的核心驱动力。 一、提…

回文数-双指针

题目描述&#xff1a; 个人题解&#xff1a; 先将整数转换成字符串&#xff0c;再利用双指针逐一比较数字。 代码实现&#xff1a; class Solution { public:bool isPalindrome(int x) {if(x<0||(x%100&&x!0)){return false;}//c标准库调用&#xff0c;将整数下转…

opencv - py_calib3d - py_calibration 相机校准

文章目录 Camera Calibration 相机校准目标基础知识代码设置校准去失真1. 使用 **cv.undistort()**2. 使用 **remapping** 重新投影误差 Camera Calibration 相机校准 目标 在本节中&#xff0c;我们将学习 相机造成的失真类型如何找到相机的内在和外在属性如何根据这些属性…

跨境电商平台:引领国际贸易新潮流

随着全球化的不断推进&#xff0c;跨境电商逐渐成为国际贸易的重要组成部分。它不仅为消费者带来了更多样化的商品选择&#xff0c;也为商家提供了更广阔的市场空间。本文将详细介绍跨境电商平台的相关知识&#xff0c;帮助读者更好地理解这一新兴领域的运作机制和市场前景。 …

防护勒索攻击:一场勒索攻击与智能防护的较量

近年来&#xff0c;云上数据安全已经成为企业的又一大难题&#xff0c;尤其是勒索攻击频发&#xff0c;有组织的黑客攻击目标已经从核心数据窃取扩展到金融、交通、能源、通信等行业的关键信息基础设施&#xff0c;对企业数据安全构成了极大的威胁和挑战。 同时AI时代&#xff…

Transformer模型基本原理、应用场景、优点与挑战,以及未来的发展趋势。

随着人工智能技术的飞速发展&#xff0c;自然语言处理&#xff08;NLP&#xff09;领域也取得了显著的进步。其中&#xff0c;Transformer模型作为近年来NLP领域的重大突破&#xff0c;已经在众多任务中取得了卓越的性能。本文将对Transformer模型进行深入的探讨&#xff0c;包…

tcache attack

Tcache Attack tcache让堆利用更加简单&#xff1a; tcache回顾&#xff1a; 在 tcache 中新增了两个结构体&#xff0c;分别是 tcache_entry 和 tcache_perthread_struct&#xff1a; /* We overlay this structure on the user-data portion of a chunk when the chunk is …

功能教学——如何快速理解并使用数据助手

在企业的数字化管理中&#xff0c;数据处理的重要性不容小觑。它如同一根红线&#xff0c;贯穿企业运营的各个环节&#xff0c;对于提升决策效率、优化运营流程以及增强市场竞争力等方面都发挥着至关重要的作用。而百数的数据助手&#xff0c;作为一款高效的数据处理工具&#…

【MySQL】:表操作语法大全

表内容的操作 增删改查 CRUD (create、retrieve、update、delete) 新增 基本语法 语法为&#xff1a; insert into 表名 values (值&#xff0c;值&#xff0c;值...);这里的列数和类型&#xff0c;要和表结构匹配插入中文的话&#xff0c;要确保数据库创建的时候要设置字…

Failed to build get_cli:get:的解决方案

项目场景&#xff1a; 今天安装Getx命令行的时候&#xff0c;输入这面文档报了一个错&#xff1a; dart pub global activate get_cli 问题描述 提示&#xff1a;这里描述项目中遇到的问题&#xff1a; 例如&#xff1a;数据传输过程中数据不时出现丢失的情况&#xff0c;偶尔…

数据传输校验

简单的异或校验 异或校验是一种简单且常用的校验方法。它将所有数据字节逐字节进行异或操作&#xff0c;最后得到的结果就是掩码。 def calculate_xor_checksum(data):checksum 0for byte in data:checksum ^ bytereturn checksumCRC&#xff08;循环冗余校验&#xff09; CR…

代码随想录算法训练营Day 63| 图论 part03 | 417.太平洋大西洋水流问题、827.最大人工岛、127. 单词接龙

代码随想录算法训练营Day 63| 图论 part03 | 417.太平洋大西洋水流问题、827.最大人工岛、127. 单词接龙 文章目录 代码随想录算法训练营Day 63| 图论 part03 | 417.太平洋大西洋水流问题、827.最大人工岛、127. 单词接龙17.太平洋大西洋水流问题一、DFS二、BFS三、本题总结 82…

基于SpringBoot的矩形范围面时空分析-以震中附近历史地震为例

目录 前言 1、分析的必要性 2、分析的紧迫性 一、数据库物理模型及空间分析实现 1、数据库物理模型 2、空间数据库中的空间查询分析 二、Java后台程序开发 1、模型层设计 2、业务层的设计与实现 三、WebGIS功能设计与实现 1、同时展示4幅地图 2、初始化地图 3、展示…

CID引流-拼多多案例

目前已实现拼多多等CID链路&#xff0c;本文以拼多多链路为例&#xff0c;说明具体实施过程 1. 拼多多链路流程 以下是通过前期调研&#xff0c;得到的具体业务流程&#xff1a; 商家申请资质以及授权部分&#xff0c;进行商品推广自研落地页&#xff0c;生成落地页在巨量引…

C# 时间、空间复杂度

栏目总目录 在软件开发中&#xff0c;评估算法的性能是一个至关重要的环节。算法的性能主要通过两个指标来衡量&#xff1a;时间复杂度和空间复杂度。本文将详细介绍这两个概念的定义、计算方法&#xff0c;并通过C#示例代码来展示常见的复杂度情况。 一、时间复杂度的概念与计…

MAVSDK-Rust源码示例编译与使用

1.启动PX4模拟器并监听14540端口 2.编译并运行MAVSDK_Server 编译: 安装: 运行mavsdk_server 3.克隆并编译MAVSDK-Rust 运行info示例 运行其它示例,参考git 在RustRover中运行示例

自动驾驶(八十六)---------通信中间件Fdbus

最近在对接各供应商的SOA软件架构和舱驾融合方案&#xff0c;发现无论是在智驾底软&#xff0c;还是智驾和座舱的通信&#xff0c;基本都是采用了fdbus的通信方案&#xff0c;因此总结一下Fdbus的相关内容。本文分为以下三部分介绍Fdbus&#xff1a;1. 什么是Fdbus&#xff0c;…

169. 多数元素【 力扣(LeetCode) 】

一、题目描述 给定一个大小为 n 的数组 nums &#xff0c;返回其中的多数元素。多数元素是指在数组中出现次数 大于 ⌊ n/2 ⌋ 的元素。 你可以假设数组是非空的&#xff0c;并且给定的数组总是存在多数元素。 二、测试用例 示例 1&#xff1a; 输入&#xff1a;nums [3,2,…

结合el-upload上传组件,验证文件格式及大小

结合el-upload上传组件&#xff0c;验证文件格式及大小 效果如下&#xff1a; 代码如下&#xff1a; upgradeFirmwareInfo.vue页面 <template><div><el-dialog title"新增固件升级包" :visible.sync"dialogFormVisible"top"7vh&qu…