【腾讯云 TDSQL-C Serverless 产品测评】“橡皮筋“一样的数据库『MySQL高压篇』
TDSQL 是腾讯云自研的新一代云原生关系型数据库。融合了传统数据库、云计算与新硬件技术的优势100% 兼容 MvSOL,为用户提供极致弹性、高性能、高可用、高可靠、安全的数据库服务。实现超百万 QPS的高吞吐、PB 级海量分布式智能存储、Serverless 秒级伸缩,助力企业加速完成数字化转型
【腾讯云 TDSQL-C Serverless 产品测评】"橡皮筋"一样的数据库
活动介绍
腾讯云TDSQL-C产品测评活动”是由腾讯云联合CSDN 推出的针对数据库产品测评及产品体验活动,本次活动主要面向 TDSQL-C Serverless 版;活动整体包括了技术分享直播及线上答疑、连续三个月做三季的产品体验、产品测评、优质征文活动以及最后的优秀用户线上圆桌对话直播环节:本次参与活动涵盖不同技术层面的用户,初步的产品体验或针对TDSQL-C产品的自动弹性能力、自动启停能力、兼容性、安全、并发、可靠性等多方面的产品测评,并通过征文的方式输出,参与活动的同时既可以收获相关技术领域的实战经验同时也可获得丰厚的活动激
服务一览
何为TDSQL ?
TDSQL 是腾讯云自研的新一代云原生关系型数据库。融合了传统数据库、云计算与新硬件技术的优势100% 兼容 MvSOL,为用户提供极致弹性、高性能、高可用、高可靠、安全的数据库服务。实现超百万 QPS的高吞吐、PB 级海量分布式智能存储、Serverless 秒级伸缩,助力企业加速完成数字化转型。
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://curl.qcloud.com/FYEn3EWr
创建集群
查看集群信息
参数优化
参数名 | 新值 |
---|---|
max_connections | 5000 |
read_buffer_size | 2621440 |
query_cache_size | 1073741824 |
innodb_read_io_threads(会重启) | 32 |
thread_pool_size | 256 |
thread_cache_size | 1024 |
-
max_connections: 这是允许的最大并发连接数。它限制了可以同时连接到 MySQL 服务器的客户端数量。如果你的应用程序经常有大量并发连接,可能需要适当调整这个值。但是,设置过大的值可能会导致服务器资源耗尽。
-
read_buffer_size: 这是每个连接用于顺序读取操作的缓冲区大小。读取缓冲区用于从磁盘中读取数据并传递给客户端。较大的缓冲区可以提高读取性能,但如果设置过大,会占用过多内存。
-
query_cache_size: 查询缓存的大小,它用于存储之前执行的查询结果。启用查询缓存可以提高查询性能,但在高并发写入环境中可能会导致性能下降。在很多情况下,不建议过于依赖查询缓存。
-
innodb_read_io_threads: 这是 InnoDB 存储引擎的读取 I/O 线程数。增加这个值可以增加并行读取能力,尤其在有大量并发读取操作时。但是,调整这个值可能需要重新启动 MySQL 服务器。
-
thread_pool_size: 这是线程池的大小,线程池用于管理客户端连接的线程。线程池可以减少线程创建和销毁的开销,提高服务器的性能。适当的线程池大小取决于你的服务器硬件和并发连接数量。
-
thread_cache_size: 线程缓存的大小,用于缓存已创建的线程,以便在需要时可以重用它们。这可以减少线程创建的开销。适当的线程缓存大小取决于并发连接模式。
可根据自己的实际可拓展大小再进行修改,这里仅作演示
压力负载测试
压测声明
- 本次采用的是聚合查询的方式,对数据库来进行压力测试
- 测试区域是在上海,可选的配置为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%这个区间。值得一提的是其优秀的监控数据,能够给到及时的响应和显示
总结
先来看一组数据
-
从AWS Aurora Serverless V1发表于2018年,现目前推出Serverless V2
-
阿里云云数据库RDS MySQL Serverless产品2022年8月15日正式开启商业化售卖
-
腾讯云于2020年12月正式上线Serverless服务,现目前TDSQL-C MySQL Serverless V1版本
可以看出,腾讯云在新技术领域的敏锐嗅觉,同时也把握住了正确的方向,在这样一个趋势下,推出的Serverless 数据库产品,也结合国内的生产环境,做出了一些额外的优化,例如采取了资源包等,更贴合国内用户使用。在监控方面,确实看出腾讯很用心,非常及时响应的数据可以立刻呈现给用户,另有数据库智能管家
,让数据库管理更加方便
也期待腾讯云能够继续优化Serverless版本的数据库,跟上世界一流云厂商的脚步,增加Serverless的CCU规格,让其更加贴合企业用户的使用,拿出更优质的产品,助力企业降本增效!
更多推荐
所有评论(0)