项目Es、kafka、mysql容量评估方案和服务器资源预估方案

news2024/11/25 20:11:57

目录

1、Es 评估计划

一个接口jmeter压测qps 1万, logstash 读取日志文件写入es

Logstash配置

Es容量变化前后差值/1万 * 1.67 * (1+副本数) ~= 次接口es 容量 (日志数据30kb)

影响es存储的主要原因

通过 kibana 查看 堆栈》索引》

通过数据中的值 / 压测的数量 = 平均容量

​编辑

服务器资源预估计算公式

多级别预估

2、Kafka评估计划

基准测试

创建test主题

基准测试 生产数据

基准测试 消费数据

先用程序插入1万条当前业务数据

使用如下命令 查看主题占用大小

容量计算规则参考es 建议定期清理时间设置方案

体量计算

3、Mysql 评估计划

普遍上浮情况



1、Es 评估计划

一个接口jmeter压测qps 1万, logstash 读取日志文件写入es

Jmeter 配置简单 配置一个http 加执行1万次请求即可

  1. Logstash配置

input{

       file{

              path=>["D:/export/log/autxxsystem/automatxxsystem_detail.log"]

              start_position=>"beginning"
       }

}

filter{

        grok {

            match => {"message" => "%{LOGLEVEL:loglevel} "}

        } 

}

output{ 

       elasticsearch{

              hosts=>["127.0.0.1:9200"]

              index => "logstash2-%{+yyyy.MM.dd}"

       }

       stdout{

              codec=>rubydebug

       }

}


 

Es容量变化前后差值/1万 * 1.67 * (1+副本数) ~= 次接口es 容量 (日志数据30kb)

  1. 影响es存储的主要原因

副本数量

建议副本数量为1

数据膨胀

除原始数据外,ES 需要存储索引、列存数据等,一般膨胀10%

内部任务开销

ES 占用约20%的磁盘空间,用于 segment 合并、ES Translog、日志等

操作系统预留

Linux 操作系统默认为 root 用户预留5%的磁盘空间,用于关键流程处理、系统恢复、防止磁盘碎片化问题等

估算公式

实际空间估算公式

实际空间 = 源数据 × (1 + 副本数量) × (1 + 数据膨胀) / (1 - 内部任务开销) / (1 - 操作系统预留)
≈ 源数据 × (1 + 副本数量) × 1.45

存储容量估算公式(预留15%的存储空间)

存储容量 = 源数据 × (1 + 副本数量) × 1.45 × (1 + 预留空间)
     
   ≈ 源数据 × (1 + 副本数量) × 1.67

  1. 通过 kibana 查看 堆栈》索引》

  1. 通过数据中的值 / 压测的数量 = 平均容量

服务器资源预估计算公式

  1. 日调用 60tps * 60s * 60m * 24h = 5,184,000 (日500万)笔
  2. 每天生产 500万笔 * ES 每笔平均容量30kb ~= 155520000kb /1024 =151875M /1024 = 148GB
  3. 可以支持(总6T / 日容量 148Gb = 40)天数

多级别预估

  1. 日调用 1000万比  6T 可支持天数
  2. 日调用 5000万笔 6T 可支持天数
  3. 日调用1亿笔 6T 可支持天数

2、Kafka评估计划

基准测试

创建test主题


kafka-topics.bat --create --topic test6 --bootstrap-server localhost:9092  --partitions 1 --replication-factor 1

基准测试 生产数据


kafka-producer-perf-test.bat --topic test6 --num-records 500  --throughput -1 --record-size 1000 --producer-props bootstrap.servers=localhost:9092  acks=1


bin/kafka-producer-perf-test.sh  
--topic  topic的名字
--num-records 总共指定生产数据量(默认5000W)
--throughput 指定吞吐量——限流(-1不指定)
--record-size    record数据大小(字节)
--producer-props  bootstrap.servers=192.168.1.20:9092,192.168.1.21:9092,192.168.1.22:9092 acks=1  指定Kafka集群地址,ACK模式


日志 

500 records sent, 1014.198783 records/sec (0.97 MB/sec), 30.99 ms avg latency, 443.00 ms max latency, 30 ms 50th, 32 ms 95th, 34 ms 99th, 443 ms 99.9th.

发送了500条记录,1014.198783条记录/秒(0.97 MB/秒),平均延迟30.99毫秒,最大延迟443.00毫秒,第50条30毫秒,第95条32毫秒,第99条34毫秒,第99.9条443毫秒。




基准测试 消费数据


#命令

kafka-consumer-perf-test.bat --broker-list  localhost:9092  --topic test6   --fetch-size 1048576 --messages 500


#介绍

bin/kafka-consumer-perf-test.sh
--broker-list 指定kafka集群地址
--topic 
指定topic的名称
--fetch-size 每次拉取的数据大小
--messages 总共要消费的消息个数


#日志

start.time, end.time, data.consumed.in.MB, MB.sec, data.consumed.in.nMsg, nMsg.sec, rebalance.time.ms, fetch.time.ms, fetch.MB.sec, fetch.nMsg.sec
2023-06-14 18:18:28:927, 2023-06-14 18:18:29:576, 0.4768, 0.7347, 500, 770.4160, 531, 118, 4.0410, 4237.2881


开始时间、结束时间、在MB中的数据消耗、MB.sec、在.nMsg中的数据损耗、nMsg.sec、再平衡时间.ms、回迁时间.ms,回迁MB秒、回迁.nMsg.sec

2023-06-14 18:18:28:927、2023-06-16 18:18:29:576、0.4768、0.7347、500、770.4160、531、118、4.0410、4237.2881


先用程序插入1万条当前业务数据

3个消息生产者,3个消息消费者

使用如下命令 查看主题占用大小

>kafka-log-dirs.bat --describe --bootstrap-server localhost:9092  --topic-list "test"

Querying brokers for log directories information

Received log directory information from brokers 0

{"version":1,"brokers":[{"broker":0,"logDirs":[{"logDir":"D:\\tmp\\kafka-logs","error":null,"partitions":[{"partition":"test-0","size":163026,"offsetLag":0,"isFuture":false}]}]}]}

D:\kf\kafka_2.12-3.4.0\bin\windows>

size":163026,  bytes   163026/1024 = 159 kb

容量计算规则参考es 建议定期清理时间设置方案

       多少磁盘支持多少天 、建议定期清理时间设置方案

网络一般采用千兆光纤

内存对应几台机器默认设置机器一半jvm

4c8g  一半使用 4g 堆大小然后横向扩展

体量计算

按照 60 tps * 60s * 60m *24h = 日 5百万多点qps

按照 120 tps * 60s * 60m *24h = 日 1万多点qps

按照 1200 tps * 60s * 60m *24h = 日 1亿多点qps

按照 12000 tps * 60s * 60m *24h = 日 10亿多点qps

按照这个比例更具自己业务规模提前做好扩容准备

根据基础资源大小服务器数量 横向扩展(通过增加机器实现扩容,可别想着提升技术实现降低成本)

正确的思想更具大厂经验建议(空间换技术)也就是机器多换技术简单(别把技术玩的太极限,亏钱的时候剩下那点就是九牛一毛,所以建议靠谱技术加横向扩展机器为最稳定方案)

3、Mysql 评估计划

查看表大小通过工具查看

数据库可视化工具一般都有 我用的是 dbeaver

计算方式  发送一万条数据 avg每条多少大小

计算avg 日 使用 大小 kb

计算磁盘 几t  在 日 百万qps 环境下 可支持 几天

计算磁盘 几t  在 日 百万qps 环境下 可支持 几天

计算磁盘 几t  在 日 百万qps 环境下 可支持 几天

计算磁盘 几t  在 日 千万qps 环境下 可支持 几天

计算磁盘 几t  在 日 千万qps 环境下 可支持 几天

计算磁盘 几t  在 日 千万qps 环境下 可支持 几天

普遍上浮情况

  1. 618 双十一 流量上浮 提前预估 20~30% 预备容量
  2. 具体更具业务分析上浮容量

ok

持续更新

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

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

相关文章

管理类联考——英语——技巧篇——阅读理解

一、阅读理解A节选项的点 1.正确答案的五大特征 (1)“主题为王”原则:即正确答案通常与文章的中心思想、主旨大意有关。 (2)正确答案的特点:语言简化、反话正说、正话反说、关键词替换。 (3)正确答案要选相对的,不选绝对的。正确答案通常含有…

编译原理期末速成-LL(1)文法、FIRST集、FOLLOW集

文章目录 LL(1)文法的条件LL(1)分析法构造FIRST(α)构造FOLLOW(A)习题强化 LL(1)文法的条件 文法不含左递归 对于文法中每一个非终结符A的各个产生式的候选首符集两两不相交。即若 对于文法中的每个非终结符A,若它存在某个候选首符集包含ε,则 这里&am…

面试被问到:测试计划和测试方案有什么区别?

面试的时候,很多小伙伴都被面试官问过这个问题 “测试计划和测试方案有什么区别”? 到底有什么区别呢?我们先好好了解下这两个文档。 一、测试计划 1、测试计划是什么? 测试计划是组织管理层面的文件,从组织管理的…

Jetpack Compose 中使用 CameraX 拍照和录制视频

在 Android 开发的历史中,Camera 的 API 是一直受人诟病的,使用过的人都知道,直观的感觉就是配置复杂、臃肿、难用、不易理解,从官方关于 Camera 的 API 迭代路线可以看出官方也在尝试着不断改进开发者关于Camera的使用体验&#…

ChatGPT编程

ChatGPT问答 问题一:如何合理分配时间问题二:以下是提高工作效率的建议:问题三:如何培养兴趣问题四:软件和硬件谁重要问题五: 设计模式如何熟练运用问题六:C语言编程冒泡排序 问题一:如何合理分配时间 这里…

Java实训第八天——2023.6.14

文章目录 一、vue的环境搭建:二、文本数据绑定三、属性数据绑定四、事件绑定五、案例1——全选/全不选六、案例2——切换图片主要内容: v-if 、v-show指令 七、表单数据绑定八、综合练习总结步骤: 一、vue的环境搭建: 官方文档&a…

Mysql数据库中的约束、用户管理与授权

文章目录 一、Mysql中常见的约束总结 二、数据表高级操作2.1克隆表,将数据表的数据记录生成到新的表中2.2清空表,删除表内的所有数据2.3创建临时表2.4创建外键约束,保证数据的完整性和一致性。 三、数据库用户管理3.1新建用户3.2查看用户信息…

《设计模式》之适配器模式

文章目录 1、定义2、动机3、应用场景4、类结构5、优缺点6、总结7、代码实现(C) 1、定义 把一个类的接口转换成客户端所期待的另一种接口,从而使原接口不匹配而无法再一起工作的两个类能在一起工作。 2、动机 在软件系统中,由于应用环境的变化&#xf…

Spring源码解密--事务篇

文章目录 一、事务的实现方式1、JDBC2、Spring基于xml配置编程式事务声明式事务 二、源码设计1、TransactionManager1)TransactionManager2)PlatformTransactionManager3)ReactiveTransactionManager 2、TransactionDefinition3、Transaction…

压缩感知入门——基于总体最小二乘的扰动压缩感知

压缩感知系列博客:压缩感知入门①从零开始压缩感知压缩感知入门②信号的稀疏表示和约束等距性压缩感知入门③基于ADMM的全变分正则化的压缩感知重构算法 文章目录 1. Problem2. 仿真结果3. MATLAB算法4. 源码地址参考文献 1. Problem 一个经典的压缩感知重构问题可以…

Git的原理与使用

背景知识: 我们在编写各种文档时,为了防止文档丢失,更改失误,失误后能恢复到原来的版本,不得不复制出一个副本。每个版本有各自的内容,但最终会只有一份报告需要被我们使用 。但在此之前的工作都需要这些不…

day10_类中成员之变量

通过以前的学习,我们知道了成员变量是类的重要组成部分。对象的属性以变量形式存在,下面我们就来详解的学习一下类中的变量 成员变量 成员变量的分类 实例变量:没有static修饰,也叫对象属性,属于某个对象的&#xf…

9k字长文理解Transformer: Attention Is All You Need

作者:猛码Memmat 目录 Abstract1 Introduction2 Background3 Model Architecture3.1 Encoder and Decoder Stacks3.2 Attention3.2.1 Scaled Dot-Product Attention3.2.2 Multi-Head Attention3.2.3 Applications of Attention in our Model 3.3 Position-wise Feed…

Linux 数据库 MySQL

Linux系统分类 ^ 数据库的分类 Linux系统 Centos(获取软件包使用yum、dnf) Ubuntu(获取软件包使用apt-get) Suse 国产系统 华为 欧拉 阿里 龙蜥 腾讯 tencentOS 麒麟(银河麒麟、中标麒麟->基于centos 优麒麟-> 基于Ubuntu ) 统…

流计算、Flink和图计算

流计算 流计算流计算概述静态数据和流数据批量计算和实时计算流计算概念流计算与Hadoop流计算框架 流计算处理流程数据处理流程数据实时采集数据实时计算实时查询服务 流计算的应用开源流计算框架StormStorm简介Storm的特点 FlinkFlink简介为什么选择Flink传统数据处理架构大数…

三年 Android 开发的技术人生,浅谈自身面试的感悟

文章素材来源于网友 本篇主要记录了一个 Android 菜瓜三年的面试之旅,希望对大家面试、跳槽有所帮助。 一些唠叨 从进入这行开始,就是听说Android端凉了,寒冬这又如何那又如何的事情,很多的风言风语缠绕着这个圈子。但是老弟觉得…

电商系统架构设计系列(三):关于「订单系统」有哪些问题是要特别考虑的?

订单系统是整个电商系统中最重要的一个子系统,订单数据也就是电商企业最重要的数据资产。 上篇文章中,我给你留了一个思考题:当系统在创建和更新订单时,如何保证数据准确无误呢? 今天这篇文章,主要聊一下&…

DM8:达梦数据库开启SQL日志sqllog

DM8:达梦数据库开启SQL日志sqllog 环境介绍1 修改配置文件sqllog.ini2 开启与关闭 DMSQLLOG2.1 开启 sql 日志记录功能2.2 查询 sql 日志记录是否开启:0 关闭,1/2/3开启);2.3 关闭 sql 日志记录功能 3 sqllog.ini 详细介绍4 更多达梦数据库使用经验总结 …

辅助驾驶功能开发-功能算法篇(3)-ACC-弯道速度辅助

1、功能架构:ACC弯道速度辅助(CSA) 2、CSA功能控制 2.1 要求 2.1.1 CSA ASM:弯道速度辅助 1. 模式管理器:驾驶员应能够激活/关闭功能 应存在处理 CSA 功能的模式管理器。模式管理器由驾驶员输入和系统状态控制。 模式管理器有两个由 CSAStatus 定义的状态。状态转换定义…

ubuntu 系统解决GitHub无法访问问题

先后试了网上两个教程,终于解决。通过修改host文件实现访问。 教程1: 1)终端输入: sudo gedit /etc/hosts 打开hosts文件; 2)使用ip查找工具查询 http://github.com和IP:http://github.global.ssl.fastly.net的ip地址并添加到hosts文件末尾; 3)关掉hosts文件,在终端…