【腾讯云 TDSQL-C Serverless 产品测评】“橡皮筋“一样的数据库『MySQL高压篇』

news/2024/5/20 8:17:50 标签: 数据库, 腾讯云, Serverless, serverless

腾讯云 TDSQL-C Serverless 产品测评】"橡皮筋"一样的数据库

  • 活动介绍
  • 服务一览
  • 降本增效,不再口号?
  • 动手环节 --- "压力"山大
    • 实验前瞻
      • 稍作简介
      • 资源扩缩范围(CCU)
      • 温馨提示
    • 服务的创建
      • 创建集群
      • 查看集群信息
    • 参数优化
    • 压力负载测试
      • 压测声明
      • 代码一览(部分)
      • 压测结果(部分贴图)
      • 小结
  • 总结

活动介绍

在这里插入图片描述

腾讯云TDSQL-C产品测评活动”是由腾讯云联合CSDN 推出的针对数据库产品测评及产品体验活动,本次活动主要面向 TDSQL-C Serverless 版;活动整体包括了技术分享直播及线上答疑、连续三个月做三季的产品体验、产品测评、优质征文活动以及最后的优秀用户线上圆桌对话直播环节:本次参与活动涵盖不同技术层面的用户,初步的产品体验或针对TDSQL-C产品的自动弹性能力、自动启停能力、兼容性、安全、并发、可靠性等多方面的产品测评,并通过征文的方式输出,参与活动的同时既可以收获相关技术领域的实战经验同时也可获得丰厚的活动激

服务一览

何为TDSQL ?

TDSQL 是腾讯云自研的新一代云原生关系型数据库。融合了传统数据库、云计算与新硬件技术的优势100% 兼容 MvSOL,为用户提供极致弹性、高性能、高可用、高可靠、安全的数据库服务。实现超百万 QPS的高吞吐、PB 级海量分布式智能存储、Serverless 秒级伸缩,助力企业加速完成数字化转型。

Serverless__10">Serverless 似曾相识?

Serverless 服务是腾讯云自研的新一代云原生关系型数据库TDSQL-C 的无服务器架构版,是全 Serverless架构的云原生数据库Serverless 服务支持按实际计算和存储资源使用量收取费用,不用不付费,将腾讯云云原生技术普惠用户

降本增效,不再口号?

自疫情结束后,似乎Serverless在我们身边出现的频率愈来愈多,在AIGC的风口下,Serverless版的AIGC使得用户和企业的使用成本变得更低。那么其实在数据库方面Serverless技术也是出现了好几年了,各大云厂商都有在Serverless方面深耕发展,在今年的大趋势下,降本增效的似乎是一个IT圈的主题,而Serverless技术在数据库方面的发展已经足够成熟,例如TDSQL-C Serverless版本,在用户不使用的情况下,服务是无状态的,那么就形成用户不用不扣费的一个场景,节省了成本。同时用户也不需要再关心底层到底有多大,需要买多大,只需要专注业务流程,让“云”帮我们自动拓展,的确是实现了降本增效

动手环节 — "压力"山大

前面些许介绍,也许您觉看的也有点云里雾里,那么下面为您演示如何创建并且使用TDSQL-C Serverless MySQL版本

实验前瞻

稍作简介

那么这里TDSQL-C Serverless MySQL 从其他厂商的对比来看,应该是属于一个V1的阶段,即Serverless 服务支持按实际计算和存储资源使用量收取费用,不用不付费

资源扩缩范围(CCU)

其实对于用户而言,没有具体的一个资源型号的概念,只提供了CCU这个给用户,即 CCU(TDSQL-C Compute Unit)为 Serverless 的计算计费单位,一个 CCU 近似等于1个 CPU 和 2GB 内存的计算资源,每个计费周期的 CCU 使用数量为:数据库所使用的 CPU 核数 与 内存大小的1/2 二者中取最大值

温馨提示

创建之前,请先购买存储资源包,价格更适合,降成本
创建之前,请先购买存储资源包,价格更适合,降成本
创建之前,请先购买存储资源包,价格更适合,降成本

一键直达: https://buy.cloud.tencent.com/cynosdb?product=package

服务的创建

如果您想获得完整的Serverless伸缩体验,那么建议您选择广州区域(作为大本营,资源应优先在其满足)
一键直达控制台:https://console.cloud.tencent.com/cynosdb/mysql/ap-guangzhou/cluster/no-cluster/detail

创建集群

在这里插入图片描述

在这里插入图片描述

查看集群信息

在这里插入图片描述
在这里插入图片描述

参数优化

参数名新值
max_connections5000
read_buffer_size2621440
query_cache_size1073741824
innodb_read_io_threads(会重启)32
thread_pool_size256
thread_cache_size1024
  1. max_connections: 这是允许的最大并发连接数。它限制了可以同时连接到 MySQL 服务器的客户端数量。如果你的应用程序经常有大量并发连接,可能需要适当调整这个值。但是,设置过大的值可能会导致服务器资源耗尽。

  2. read_buffer_size: 这是每个连接用于顺序读取操作的缓冲区大小。读取缓冲区用于从磁盘中读取数据并传递给客户端。较大的缓冲区可以提高读取性能,但如果设置过大,会占用过多内存。

  3. query_cache_size: 查询缓存的大小,它用于存储之前执行的查询结果。启用查询缓存可以提高查询性能,但在高并发写入环境中可能会导致性能下降。在很多情况下,不建议过于依赖查询缓存。

  4. innodb_read_io_threads: 这是 InnoDB 存储引擎的读取 I/O 线程数。增加这个值可以增加并行读取能力,尤其在有大量并发读取操作时。但是,调整这个值可能需要重新启动 MySQL 服务器。

  5. thread_pool_size: 这是线程池的大小,线程池用于管理客户端连接的线程。线程池可以减少线程创建和销毁的开销,提高服务器的性能。适当的线程池大小取决于你的服务器硬件和并发连接数量。

  6. thread_cache_size: 线程缓存的大小,用于缓存已创建的线程,以便在需要时可以重用它们。这可以减少线程创建的开销。适当的线程缓存大小取决于并发连接模式。

可根据自己的实际可拓展大小再进行修改,这里仅作演示

在这里插入图片描述

压力负载测试

压测声明

  1. 本次采用的是聚合查询的方式,对数据库来进行压力测试
  2. 测试区域是在上海,可选的配置为16-32

代码一览(部分)

插入模拟数据

    public void timer_task(){
        ExecutorService executorService = Executors.newFixedThreadPool(100);
        for (int i = 0; i < 100; i++) {
            InsertTask task = new InsertTask(this.table_name);
            executorService.execute(task);
        }
        executorService.shutdown();
    }
    public static void main(String[] args) {
        String table_name = args[0];
        APPMain app = new APPMain(table_name);
        app.timer.schedule(app.timerTask,0,1000);
    }

聚合查询

    public void timer_task() {
        ExecutorService executorService = Executors.newFixedThreadPool(5);
        for (int i = 0; i < 5; i++) {
            QueryTask task = new QueryTask(this.table_name);
            executorService.execute(task);
        }
        executorService.shutdown();
        try {
            if (!executorService.awaitTermination(5, TimeUnit.SECONDS)) {
                executorService.shutdownNow();
            }
        } catch (InterruptedException e) {
            executorService.shutdownNow();
        }
    }

压测结果(部分贴图)

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

小结

在高压负载下,Serverless版本的数据库可以快速拓展,以满足用户的压力场景下的需求,同时可以持续性的顶住压力完成业务的操作,对于CPU和内存方面来讲,CPU的压力很大,峰值情况下能够达到100%,其内存情况方面来看,稳定维持在80%-90%这个区间。值得一提的是其优秀的监控数据,能够给到及时的响应和显示

总结

先来看一组数据

  1. 从AWS Aurora Serverless V1发表于2018年,现目前推出Serverless V2

  2. 阿里云云数据库RDS MySQL Serverless产品2022年8月15日正式开启商业化售卖

  3. 腾讯云于2020年12月正式上线Serverless服务,现目前TDSQL-C MySQL Serverless V1版本

可以看出,腾讯云在新技术领域的敏锐嗅觉,同时也把握住了正确的方向,在这样一个趋势下,推出的Serverless 数据库产品,也结合国内的生产环境,做出了一些额外的优化,例如采取了资源包等,更贴合国内用户使用。在监控方面,确实看出腾讯很用心,非常及时响应的数据可以立刻呈现给用户,另有数据库智能管家,让数据库管理更加方便

也期待腾讯云能够继续优化Serverless版本的数据库,跟上世界一流云厂商的脚步,增加Serverless的CCU规格,让其更加贴合企业用户的使用,拿出更优质的产品,助力企业降本增效!


http://www.niftyadmin.cn/n/4965375.html

相关文章

智能问答FAQ的原始问答数据怎么整理?

整理智能问答FAQ的原始数据是构建一个智能问答系统的重要步骤之一。 如何整理原始问答数据以及如何将其转化为智能问答系统 1. 收集原始数据 收集原始数据是整理智能问答FAQ的第一步。可以从以下途径收集原始数据&#xff1a; 网络搜索&#xff1a;通过搜索引擎、论坛、社交…

【Linux】一张图了解系统文件

首先先认识磁盘结构 系统文件分布图 文件查找 文件删除 文件的增删改查都是围绕inode来完成的&#xff0c;所以当我们要进行文件删除的时候&#xff0c;只需要通过inode来获取到它对应的block bitmap和inode bitmap数据块容器和保存文件属性的位置置为 0即可 &#xff0c;如果想…

python 常用快捷键汇总——202308

一、编辑&#xff08;Editing&#xff09; 行注释/取消行注释 Ctrl/ 自动调整代码格式 AltCtrlL 快速查看文档 CtrlQ 剪切 CtrlX 复制 CtrlC 粘贴 CtrlV 选中 CtrlAltT 复制选定的行 CtrlD 删除选定的行 CtrlY 整体右移&#xff08;缩进&#xff09;/左移&#xff08;退格&…

每日一题:leetcode 1267

这里有一幅服务器分布图&#xff0c;服务器的位置标识在 m * n 的整数矩阵网格 grid 中&#xff0c;1 表示单元格上有服务器&#xff0c;0 表示没有。 如果两台服务器位于同一行或者同一列&#xff0c;我们就认为它们之间可以进行通信。 请你统计并返回能够与至少一台其他服务…

一百六十四、Kettle——Linux上脚本运行kettle的转换任务(Linux本地、Linux资源库)

一、目的 在kettle的转换任务以及共享资源库、Carte服务创建好后&#xff0c;需要对kettle的转换任务用海豚调度器进行调度&#xff0c;调度的前提的写好脚本。所以&#xff0c;这篇博客首先介绍在Linux上脚本运行kettle的转换任务 二、前提准备 &#xff08;一&#xff09;…

构建 NodeJS cinema API 网关并部署到 Docker(04/4)

一、说明 构建一个微服务的电影网站&#xff0c;需要Docker、NodeJS、MongoDB&#xff0c;这样的案例您见过吗&#xff1f;如果对此有兴趣&#xff0c;您就继续往下看吧。 我们前几章的快速回顾 第一篇文章介绍了微服务架构模式&#xff0c;并讨论了使用微服务的优缺点。第二篇…

<b>和<strong>的区别

<b>和<strong>的区别是什么? . <b>标签和<b>标签是两种不同的标签。 <b>标签表示粗体。<b>标签可以强调的是字体外观的加粗效果。<strong>标签是我们要强调的地方。 <strong>标签具有语义并充当强调作用&#xff0c;而 &…

Jsp 解决out.print()输出多出空行

一、原因 在 JSP 中&#xff0c;HTML 标签和 JSP 指令之外的内容会被当作文本处理&#xff0c;包括空行、空格和制表符等。当 JSP 引擎解析 JSP 页面时&#xff0c;会将这些文本内容原封不动地输出到响应中。 http响应 二、解决方法 在Jsp页面最前端添加 <% page trimDir…