花 200 元测试 1300 个实时数据同步任务

背景

对于将数据作为重要生产资料的公司来说,超大规模的数据迁移同步系统( 1k、5k、10k 条同步任务)是刚需。

本文以此为出发点,介绍近期 CloudCanal 所做的一个容量测试:在单个 CloudCanal 集群上创建 1300 实时任务,验证系统是否健康。

这个健康度主要包括 同步任务是否运行正常页面功能操作是否顺畅容灾能力是否可靠 三个方面。

当然这个测试也带给我们一些新的思路和改进点,让产品更加健壮。

资源与环境

本次测试资源以云资源为主,详单如下:

资源用途资源规格
console2 个 2core8GB 虚拟机 (阿里云 ecs.u1-c1m4.large)
元数据库1 个 8core16GB MySQL 8.0 (阿里云 RDS mysql.n2m.xlarge.2c)
sidecar8 个 12core96GB 虚拟机 (阿里云 ecs.u1-c1m8.3xlarge)
业务库2 个 4core8GB MySQL 8.0 (阿里云 RDS mysql.n2m.large.2c)
负载均衡1 个 4 层负载均衡 (sidecar->console 7007 端口,阿里云 NLB)
1 个 7 层负载均衡 (CloudCanal 页面操作,console 8111 端口,阿里云 ALB)

测试步骤

安装 console

  • 根据 tgz 安装文档 安装软件
  • 激活 CloudCanal,因社区版任务数限制,我们临时申请了一个 2000 个同步任务的 license
    console

安装节点

  • 机器管理 > 机器列表 > 添加机器,选择自动安装
    auto_install
  • 等待节点安装完成
    auto_install_result

业务数据库准备

  • 两个 RDS 分别创建源端 src_test_a 和 src_test_b 库,以及 target_db_0~target_db_999 1000个目标库
  • 一个任务源端和目标分别是 src_test_a/src_test_b -> target_db_(i)
    target_1
    target_2
  • 源端各创建 1 张表,并各生成 1000 条数据
    source_1
    source_2

基于 OpenAPI 创建任务

  • 设置任务参数模版 LE_256MB_TASK ,以便生成任务时自动调整
    task_config_template

  • 获取 AccessKey 和 SecretKey 以便调用 API 创建任务
    ak_sk_fetch

  • 向元数据库插入 128MB 规格数据
    prepare_spec_data

  • 编写调用 OpenAPI 代码,1 次 100 个任务创建, 代码参考
    data_job_create_base_api

健康状况

  • 任务正常运行,任务查看/新建/启停/删除、任务调度、监控告警、页面功能查看均表现正常顺滑
    datajob_status

  • 控制台负载偏高,因为只用了 2 core 节点,需提升为 4 core
    console_status

  • 节点负载正常
    worker_status

  • 元数据库负载正常,qps 偏高,需要优化任务数据(状态、位点等)上传频率和方式
    db_status

可改进点

  • 任务数据(状态/位点等)上报频率、种类需要优化,对元数据库压力较高
  • 监控指标依赖的 promethus 需要进行调优

资源花费

  • 早上开资源前
    account_before

  • 晚上释放资源前
    account_after

云资源花费 200 元左右。

总结

本次容量测试是 CloudCanal 针对单集群 1000 个以上任务的场景验证,从中找到一些可能存在的问题并逐步改进,为大型客户大规模使用做好基本的验证与后续优化。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

2023年中国骨质疏松治疗仪发展趋势分析:小型且智能将成为产品优化方向[图]

骨质疏松治疗仪利用磁场镇静止痛、消肿消炎的治疗作用迅速缓解患者腰背疼痛等骨质疏松临床症状。同时利用磁场的磁-电效应产生的感生电势和感生电流,改善骨的代谢和骨重建,通过抑制破骨细胞、促进成骨细胞的活性来阻止骨量丢失、提高骨密度。 骨质疏松治…

【软件推荐】我的常用Windows软件

文章目录 前言Colors Lite(颜色吸取)Everything(文件搜索)知云文献翻译Directory Opus(文件管理器)Snipaste(截图)AxMath(公式编辑器)Deskpin(窗口…

【Android】导入三方jar包/系统的framework.jar

1.Android.mk导包 1).jar包位置 与res和src同一级的libs中(没有就新建) 2).Android.mk文件 LOCAL_STATIC_ANDROID_LIBRARIES:android静态库,经常用于一些support的导包 LOCAL_JAVA_LIBRARIES:依赖的java库,一般为系统的jar…

Linux常用命令——bzcmp命令

在线Linux命令查询工具 bzcmp 比较两个压缩包中的文件 补充说明 bzcmp命令主要功能是在不真正解压缩.bz2压缩包的情况下,比较两个压缩包中的文件,省去了解压缩后在调用cmp命令的过程。 语法 bzcmp(参数)参数 文件1:指定要比较的第一个…

UE基础篇十:材质

导语: 视频文档在文末 虚幻引擎默认是延迟渲染(延迟渲染是通过先算出需要着色的像素,然后再迭代灯光,从而减少大量无效的灯光计算,来达到优化的目的) 一、基础知识 1.1 贴图分辨率尺寸 2的幂次方,长宽随意组合 非2的幂次方,不能设置MipMaps(引擎会生成多张分辨率更…

任务栏上的超萌小猫,实时显示CPU占用率,有趣.Net开源工具

推荐一个非常有趣的.Net开源小工具,它可以在电脑任务栏显示一只奔跑的小猫,实时显示CPU使用率! 01 项目简介 一款基于.NET 6.0运行环境的开源小工具,通过它,用户可以直观地查看CPU的使用情况,它会根据 CP…

程序员导航站

探路者 hello.alluniverse.vip 开发者导航 - Pro Developer网站导航 探路者是一款极简导航工具,致力于收录的每个站点都有其独特的作用。同时支持自定义导航,让用户快速实现个性化的导航站点。 特性概述 免费ChatGPT 装机必备 开发工具 Git精选项目 …

云计算(Docker)

Docker简介 Docker 是一个开源的应用容器引擎,基于 Go 语言,并遵从 Apache2.0 协议开源。它可以让开发者打包应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。Docker 可用于开发…

2023年中国涂料树脂需求量、市场规模及行业竞争现状分析[图]

涂料用树脂是涂料的主要原材料,是涂料的主要成膜物,且了为涂料成品提供耐醇、耐磨、耐高温、耐高湿、减少涂料在涂装完成后的损耗、保持涂装后外观以及性状的稳定性等功能。 根据生产产品的性状不同,其下游产品,即涂料成品广泛应用…

锐捷EG易网关login.php以及其后台cli.php/branch_passw.php RCE漏洞复现 [附POC]

文章目录 锐捷EG易网关login.php以及其后台cli.php/branch_passw.php远程代码执行漏洞复现 [附POC]0x01 前言0x02 漏洞描述0x03 影响版本0x04 漏洞环境0x05 漏洞复现1.访问漏洞环境2.构造POC3.复现 锐捷EG易网关login.php以及其后台cli.php/branch_passw.php远程代码执行漏洞复…

电脑集中管理软件有哪些?电脑集中管控怎么做

电脑集中管理软件有哪些?电脑集中管控怎么做 电脑集中管理软件是指通过一种软件或系统,对多台电脑进行集中管理和控制的工具。这种软件通常具备远程控制、软硬件监控、自动部署等功能。可以方便企业或组织统一管理电脑资源,提高工作效率。今…

java“贪吃蛇”小游戏

基于java实现贪吃蛇小游戏,主要通过绘制不同的图片并以一定速度一帧一帧地在窗体上进行展示。 我是在javaSwing项目下创建了一个包 名字叫做:Snakes包 包下有一个启动类和一个设置代码的主界面两个类 代码主界面: 代码主界面主要讲解的是 …

linux关于cmake,makefile和gdb的使用

c文件的编译 安装环境(centos 7) 检查命令是否齐全 gcc --version g --version gdb–version 安装命令 yum -y install gcc-c安装g命令(用于编译c/c文件) yum -y install gcc安装gcc命令(用于编译c文件) 每个都出现版本号,证明…

Java-接口和抽象类

本章重点:1. 抽象类 2. 接口 3.Object类 1. 抽象类 1.1 抽象类概念 在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一…

计算机毕业设计项目选题推荐(免费领源码)java+mysql二手校园交易平台67613

目录 摘要 1 绪论 1.1 研究背景 1.2国内外研究现状 1.3论文结构与章节安排 2 二手校园交易平台系统分析 2.1 可行性分析 2.2 系统流程分析 2.2.1 数据流程 3.3.2 业务流程 2.3 系统功能分析 2.3.1 功能性分析 2.3.2 非功能性分析 2.4 系统用例分析 2.5本章小结 …

滚雪球学Java(09-2):Java中的关系运算符,你真的掌握了吗?

咦咦咦,各位小可爱,我是你们的好伙伴——bug菌,今天又来给大家普及Java SE相关知识点了,别躲起来啊,听我讲干货还不快点赞,赞多了我就有动力讲得更嗨啦!所以呀,养成先点赞后阅读的好…

3.6 Windows驱动开发:内核进程汇编与反汇编

在笔者上一篇文章《内核MDL读写进程内存》简单介绍了如何通过MDL映射的方式实现进程读写操作,本章将通过如上案例实现远程进程反汇编功能,此类功能也是ARK工具中最常见的功能之一,通常此类功能的实现分为两部分,内核部分只负责读写…

C语言每日一题(31)相交链表

力扣160.相交链表 题目描述 给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点,返回 null 。 图示两个链表在节点 c1 开始相交: 题目数据 保证 整个链式结构中不存在环。 注意…

主办方:上海视频媒体,多样式多渠道跨屏传播

传媒如春雨,润物细无声,大家好,我是51媒体网胡老师。 一,邀请视频媒体参加活动发布会,好处多多,首先现场气氛会很热烈,主办方会很有面子,视频媒体不管是电视台还是视频网站&#xf…