Starrocks基于主机和容器的读写测试

背景介绍

在云原生时代,存算分离架构显然已经是当下大数据架构的必备选型,但是在不同的虚拟化计算资源(主机、容器)之上,是否能有差异点以及对于不同服务的性能损耗程度如何?来判断应该在什么样的场景下选择什么样的资源配比将是存算分离引擎的调优手段之一。

本文的测试目的在于查看基于容器部署的Starrocks集群相较于主机部署的Starrocks集群,在数据读写上面是否有明显的差异点以及在集群配置CPU和内存资源配比上面找到较为合适的资源比例。

资源配置

Starorcks版本:3.2.0 存算分离 ,采用默认配置 (下篇会基于不同特性开启下的性能差异对比)

机器资源:

  • 机器类型:性能保障型X6  * 5台

  • 机器规格:8C32G

  • 云盘类型:ESSD_PL1

测试数据集:

  • 社区提供的标准TPC-H数据集(100G、200G)

https://docs.starrocks.io/zh/docs/benchmarking/TPC-H_Benchmarking/

不同规格下数据写入速度

8C32G16C64G
100G 数据集 stream load 写入时间9m42.586s10m21.843s
200G 数据集 stream load 写入时间20m32.206s20m12.313s

数据读取测试

1. 200G单并发主机和容器读取耗时对比

2. 200G5并发主机和容器读取耗时对比

监控分析

200G tpch 数据 5 并发测试监控 如下图所示,第一行是 16 核 64G 集群的 cpu 利用率、网络流量和内存使用监控,第二行是 8 核 32G 集群的监控

  • 16 核 64G 集群的 cpu :24 * 68% = 16.32

  • 8 核 32G 集群的 cpu :12 * 70% = 8.4

容器环境并发测试

内存瓶颈分析

在之前的测试中,当并发量到一定程度之后,就会出现部分查询语句失败的现象,而失败的原因全部都是超出了 BE 进程的内存限制,错误日志如下所示

现在以最容易失败的 Q9 为例,查看查询失败时 BE 节点的内存使用。其中 Q9 是一个涉及 6 张表 join 的复杂查询。

selectnation,o_year,sum(amount) as sum_profit
from(selectn_name as nation,extract(year from o_orderdate) as o_year,l_extendedprice * (1 - l_discount) - ps_supplycost * l_quantity as amountfrompart,supplier,lineitem,partsupp,orders,nationwheres_suppkey = l_suppkeyand ps_suppkey = l_suppkeyand ps_partkey = l_partkeyand p_partkey = l_partkeyand o_orderkey = l_orderkeyand s_nationkey = n_nationkeyand p_name like '%green%') as profit
group bynation,o_year
order bynation,o_year desc

以 Q9 的 30 并发为例,持续进行请求,下图是 BE 节点的 cpu & mem 监控截图,可以看出,内存一直在高点附近。

然后分析具体的内存占用,如下图所示,BE 进程的总内存 51G 已经到达了软限制,其中在这 51G 内存中,占用内存最多的是 query_pool 和 column_pool,分别代表 BE 查询层使用总内存和 column pool 内存大小,其中 column_pool 用于加速存储层数据读取的 Column Cache。很不幸的是,关于这两项内存占用,并没有相关配置可以进行调节。也就是说由于高并发导致的内存报错,只能通过修改 sql 语句和提升节点规格进行解决。

接下来再针对内存瓶颈,以 Q9 为例,进行一系列详细测试,测试结果如下

5并发10并发20并发25并发
8c32g成功失败

失败

失败
8c64g成功成功失败失败
16c64g成功成功成功失败

其中,8c64g 的 20 并发是失败的,这一点值得讨论一下,因为 16c64g 的 20 并发是成功的,8c64g 的 20 并发错误日志和内存分析如下,可以看出错误原因发生了变化,这次是达到了 query pool 的内存限制,不过依旧无法通过调节配置进行解决

通过以上分析可以得出下述结论:

  • 扩大 BE 节点内存可以缓解内存报错的现象

  • 相同内存大小下,1:4 的 cpu 内存比要优于 1:8 的 cpu 内存比,不仅可以提升读性能,而且可以减少内存不足的风险

CPU瓶颈分析

该测试本想通过打满 8c64g 集群的 CPU,然后升级 cpu 规格来验证 cpu 的瓶颈。但是无论加多少并发,cpu 利用率始终很低,反而是升级 cpu 规格之后,利用率得到有效提升,最终的结论分析与上面的结论完全一致。

以 Q22 的 50 并发为例,测试结果记录如下。其中上面两张图是 8C64G 的 cpu 和 mem 监控截图,下面两张图是 16C64G 的 cpu 和 mem 监控截图。

本文总结

本文重点从基础性能方面对Starorcks进行了再不同规格、不同资源类型、不同并发下面的性能对比,从而也验证了在CPU和内存配比方面,1:4的配比是更为合适的资源配比,这对于Starorcks的资源选型方面提供了一定参考意义。

后面我们还有对于Starrocks不同特性开启之后,对于读写性能的提升,比如异步物化视图、查询队列、中间结果落盘、Pipeline Engine 、QueryCache等相关特性的提升来输出相关报告

如果想进一步交流的话,欢迎加我 V:kubedata

我们宗旨:分享创造价值、交流促进成长,欢迎关注:云原生大数据技术荟

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

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

相关文章

设计模式之原型模式讲解

原型模式本身就是一种很简单的模式,在Java当中,由于内置了Cloneable 接口,就使得原型模式在Java中的实现变得非常简单。UML图如下: 我们来举一个生成新员工的例子来帮助大家理解。 import java.util.Date; public class Employee…

macOS Sonoma如何查看隐藏文件

在使用Git进行项目版本控制时,我们可能会遇到一些隐藏文件,比如.gitkeep文件。它通常出现在Git项目的子目录中,主要作用是确保空目录也可以被跟踪。 终端命令 在尝试查看.gitkeep文件时,使用Terminal命令来显示隐藏文件 default…

win11蓝牙图标点击变灰,修复过程

问题发现 有一天突然心血来潮想着连接蓝牙音响放歌来听,才发现win11系统右下角菜单里的蓝牙开关有问题。 打开蓝牙设置,可以正常直接连上并播放声音,点击右下角菜单里的蓝牙开关按钮后,蓝牙设备也能正常断开,但是按钮直接变深灰色,无法再点击打开。 重启电脑,蓝牙开关显…

企微侧边栏开发(内部应用内嵌H5)

一、背景 公司的业务需要用企业微信和客户进行沟通,而客户的个人信息基本都存储在内部CRM系统中,对于销售来说需要一边看企微,一边去内部CRM系统查询,比较麻烦,希望能在企微增加一个侧边栏展示客户的详细信息&#xf…

GNU Radio之OFDM Carrier Allocator底层C++实现

文章目录 前言一、OFDM Carrier Allocator 简介二、底层 C 实现1、make 函数2、ofdm_carrier_allocator_cvc_impl 函数3、calculate_output_stream_length 函数4、work 函数5、~ofdm_carrier_allocator_cvc_impl 函数 三、OFDM 数据格式 前言 OFDM Carrier Allocator 是 OFDM …

(免费分享)基于springboot,vue超市管理系统

开发工具:IDEA 服务器:Tomcat9.0, jdk1.8 项目构建:maven 数据库:mysql5.7 项目采用前后端分离 前端技术:vueelementUI 服务端技术:springbootmybatis-plusredis 本项目分为系统管理员、…

24. UE5 RPG制作属性面板(二)

在上一篇中,我们创建属性面板的大部分样式,这一篇里面接着制作。 在这一篇里我们需要有以下几个方面: 在界面增加一个属性按钮。属性按钮增加事件,点击时可以打开属性面板,属性面板打开时无法再次点击按钮。点击属性面…

iPhone用GPT替代Siri

shigen坚持更新文章的博客写手,擅长Java、python、vue、shell等编程语言和各种应用程序、脚本的开发。记录成长,分享认知,留住感动。 个人IP:shigen 前一段时间,因为iCloud协议的更新,我的云盘空间无法正常…

什么是RISC-V?开源 ISA 如何重塑未来的处理器设计

RISC-V代表了处理器架构的范式转变,特点是其开源模型简化了设计理念并促进了全球community-driven的开发。RISC-V导致了处理器技术发展前进方式的重大转变,提供了一个不受传统复杂性阻碍的全新视角。 RISC-V起源于加州大学伯克利分校的学术起点&#xff…

HarmonyOS 应用开发之UIAbility组件间交互(设备内)

UIAbility是系统调度的最小单元。在设备内的功能模块之间跳转时,会涉及到启动特定的UIAbility,该UIAbility可以是应用内的其他UIAbility,也可以是其他应用的UIAbility(例如启动三方支付UIAbility)。 本文将从如下场景…

深入Spark与LDA:大规模文本主题分析实战

使用LDA模型和Spark进行文本主题分析 本篇博客介绍了如何使用LDA(潜在狄利克雷分配)模型和Spark进行文本主题分析。我们的目标是从大量的用户评论中提取出主题。 1. 环境设置 首先,我们需要导入所需的库,包括jieba(…

如何制作蛋糕店小程序_开启您的蛋糕店小程序之旅

甜蜜滋味,一触即达——开启您的蛋糕店小程序之旅 在这个快节奏的时代,人们对美食的追求从未停歇。尤其是那些色香味俱佳、口感细腻的蛋糕,更是成为了许多人生活中的小确幸。然而,忙碌的工作和生活常常让我们无法亲自前往蛋糕店&a…

【QT入门】 Qt自定义信号后跨线程发送信号

往期回顾: 【QT入门】 lambda表达式(函数)详解-CSDN博客 【QT入门】 Qt槽函数五种常用写法介绍-CSDN博客 【QT入门】 Qt实现自定义信号-CSDN博客 【QT入门】 Qt自定义信号后跨线程发送信号 由于Qt的子线程是无法直接修改ui,需要发送信号到ui线程进行修改…

Swagger3探索之游龙入海

引言 后端开发中常用的接口调用工具一般使用Postman、ApiPost工具&#xff0c;但后期需要与前端联调&#xff0c;要补充接口文档花费大量时间&#xff0c;此时Swagger3应运而生&#xff0c;大大提高沟通交流的效率。 引用依赖 <!-- Swagger3 调用方式 http://ip:port/swa…

【容器源码篇】Set容器(HashSet,LinkedHashSet,TreeSet的特点)

文章目录 ⭐容器继承关系&#x1f339;Set容器&#x1f5d2;️HashSet源码解析构造方法public HashSet()public HashSet(Collection<? extends E> c)public HashSet(int initialCapacity, float loadFactor)HashSet(int initialCapacity, float loadFactor, boolean dum…

Mysql数据库:高级SQL语言详解

目录 前言 一、按关键字排序查询 1、单字段排序 1.1 按某一字段升序排序 1.2 按某一字段降序排序 1.3 结合where进行条件进行排序 2、多字段排序 2.1 按多字段升序排序 2.2 按多字段降序排序 2.3 案例操作 3、区间判断及查询不重复记录 3.1 区间判断 3.1.1 AND/OR…

iOS - Runtime-API

文章目录 iOS - Runtime-API1. Runtime应用1.1 字典转模型1.2 替换方法实现1.3 利用关联对象给分类添加属性1.4 利用消息转发机制&#xff0c;解决方法找不到的异常问题 2. Runtime-API2.1 Runtime API01 – 类2.1.1 动态创建一个类&#xff08;参数&#xff1a;父类&#xff0…

Linux课程____Samba文件共享服务

一、 Samba服务基础 SMB协议&#xff0c;服务消息块 CIFS协议&#xff0c;通用互联网文件系统 1.Samba 服务器的主要程序 smbd:提供对服务器中文件、打印资源的共享访问 nmbd:提供基于 NetBlOS 主机名称的解析 2.目录文件 /etc/samba/smb.conf 检查工具&#xff1a;test…

开源 | 电动汽车充换电解决方案,从智能硬件到软件系统,全部自主研发

文章目录 一、产品功能部分截图1.手机端&#xff08;小程序、安卓、ios&#xff09;2.PC端 二、小程序体验账号以及PC后台体验账号1.小程序体验账号2.PC后台体验账号关注公众号获取最新资讯 三、产品简介&#xff1f;1. 充电桩云平台&#xff08;含硬件充电桩&#xff09;&…

【全套源码教程】基于SpringBoot+MyBatis+Vue的电商智慧仓储管理系统的设计与实现

前言 博主简介&#x1f468;&#x1f3fc;‍⚕️&#xff1a;国内某一线互联网公司全栈工程师&#x1f468;&#x1f3fc;‍&#x1f4bb;&#xff0c;业余自媒体创作者&#x1f4bb;&#xff0c;CSDN博客专家&#x1f3c6;&#xff0c;Java领域优质创作者&#x1f4d5;&#x…