云服务器实际利用率多少,你都支付了全部资源量的费用(用不够一个月也按一个月算)。基 【腾讯云 TDSQL-C Serverless 产品体验】TDSQL-C MySQL Serverless实践之路腾讯云TDSQL-C联合CSDN推出了一款云数据库产品测评活动让我们一起来体验一下。一、什么是云数据库云数据库是指被优化或部署到一个虚拟计算环境中的数据库可以实现按需付费、按需扩展、高可用性以及存储整合等优势。云数据库的特性有实例创建快速、支持只读实例、读写分离、故障自动切换、数据备份、Binlog备份、SQL审计、访问白名单、监控与消息通知等。1. 优势可以使用户按照存储容量和带宽的需求付费可以将数据库从一个地方移到另一个地方云的可移植性可实现按需扩展高可用性HA1.1 轻松部署用户能够在控制台轻松的完成数据库申请和创建数据库实例在几分钟内就可以准备就绪并投入使用。1.2 高可靠云数据库具有故障自动单点切换、数据库自动备份等功能保证实例高可用和数据安全。1.3 低成本数据库支付的费用远低于自建数据库所需的成本用户可以根据自己的需求选择不同套餐使用很低的价格得到一整套专业的数据库支持服务。云数据库发展经历了三个时代1.0时代是以云托管数据库为主2.0时代是容器架构的云原生数据库时代3.0时代云Serverless数据库将成为主流趋势。腾讯云数据库TDSQL-C Serverless新版发布标志着云原生数据库Serverless化正式步入全面推进阶段。二、TDSQL-C MySQL云数据库TDSQL是腾讯云自研企业级分布式数据库旗下涵盖金融级分布式、云原生、分析型等多引擎融合的完整数据库产品体系提供业界领先的金融级高可用、计算存储分离、数据仓库、企业级安全等能力同时具备智能运维平台、Serverless版本等完善的产品服务体系。TDSQL100%兼容MySQL和PostgreSQL包含三大产品系列分别为分析型数据库TDSQL-ATencent Analytical Database、云原生数据库TDSQL-C Tencent CloudNative Database和分布式数据库TDSQLTencent DistributedDatabase全方位满足各行各业的业务需求。云原生数据库TDSQL-C MySQL采用计算和存储分离日志即数据库的 Shared Storage 架构融合了传统数据库、云计算与新硬件技术的优势100%兼容 MySQL 等开源数据库实现了超百万级 QPS 的吞吐超百 TB 的海量分布式智能存储能够很好地支撑大数据量的归档存储和高效查询性能。三、TDSQL-C MySQL Serverless版本Serverless 服务是腾讯云自研的新一代云原生关系型数据库 TDSQL-C MySQL 版的无服务器架构版是全 Serverless 架构的云原生数据库。Serverless 服务支持按实际计算和存储资源使用量收取费用不用不付费。1. Serverless 服务架构按需启动不需要时可关闭。自动扩展/收缩。缩放对应用程序无影响。四、购买并开通TDSQL-C MySQL Serverless如下我们在选择数据库实例时可以看到预置资源的MySQL一年的费用是3250.94就是说你哪怕是数据库没有使用只要买了就要付这么多的钱。那想像一下我们在学校开发系统只有白天才会使用到了晚上的话、周未时间段基本上没有使用的这样买数据库的话感觉十分的浪费。但是我们切换Serverless来看一下是按小时来收费的不就是按量收费吗?这样是不是很符合我们的场景呢接下来的几个选项数据库版本有5.7、有8.0可以符合大部分的需求场景算力配置CCUTDSQL-C Compute Unit为 Serverless 的计算计费单位一个 CCU 近似等于1个 CPU 和 2GB 内存的计算资源每个计费周期的 CCU 使用数量为数据库所使用的 CPU 核数 与 内存大小的1/2 二者中取最大值。自动启停数据库在该时间内没有连接和 CPU 使用时将自动暂停暂停后计算不计费存储仍然按实际使用量计费。存储资源包通过资源包可以提前预留资源而且相对于按量付费方式资源包可以帮助节省更多成本资源包的购买容量越大有效期越长越划算。我们可以看到存储的资源包也是比较便宜的相对于传统MySQL的实例的空间要划算多了。创建完数据库集群实例后可以看到控制台显示。也可以查看数据库实例运行很多指标的监控可以让我们及时查看数据库实例的一些症状提前做一些预防措施。CPU使用率内存使用率内存使用量存储使用率存储使用量数据表空间使用量临时表空间使用量undo表空间使用量CCU每秒发送客户端流量每秒接收客户端流量创建一个账号管理方便用来管理账号。创建一个数据库用来存储数据管理。其它的选项暂时没用到就不仔细介绍一下了。五、官方手册体验通过官方提供的手册很快我们就完成了TDSQL-C MySQL的实际操作问答系统手册案例也比较简单与平时所使用的 Sql 语法差不多一致基本上没有什么学习成本开箱即用可以快速上手同时也欢迎大家一起探索云原生数据库 TDSQL-C Serverless 更多的功能为工作中赋能增效降本以下为官方手册对着的效果。六、测评特性TDSQL-C MySQL 版提供 Serverless 服务以满足企业对特定业务场景的数据库服务要求助力企业降本增效。1. 资源扩缩范围CCU可调整 CCU 弹性扩缩容的范围。Serverless 集群会在该范围内根据实际业务压力自动增加或减少 CCU。2. 弹性策略Serverless 集群会持续监控用户的 CPU、内存等 workload 负载情况根据一定的规则触发自动扩缩容策略。3. 自动启停Serverless 服务支持自定义实例自动暂停时间无连接时实例会自动暂停。当有任务连接接入时实例会秒级无间断自动唤醒。七、自动启停评测先将服务器进行关闭。改造代码并且关掉数据库服务测试看看能不能进行自动启停。// 获取前10名分数用于跑马灯效果router.post(/api/getScores,async(ctx,next){console.log(获取前10名分数信息日志)constdate1newDate();letsqlSELECT * FROM data_scores order by id desc limit 10;const[results]awaitconnection.execute(sql);constdate2newDate();constdate3date2.getTime()-date1.getTime()console.log(查询语句的开始时间,date1);console.log(\n查询语句的结束时间,date2);console.log(\n查询语句的相差时间,date3);ctx.response.typeapplication/json;ctx.response.body{code:200,message:成功,data:results};});这里的相差的时间为8989毫秒相差8秒多而且服务器确实自动唤起了感觉时间还是不太准确。只有重启代码才能自动唤起链接想想一下其它方案使用mysql命令进行登录。在 Linux 命令行中可以使用 time 命令来统计命令执行时间。time 命令可以测量指定命令的执行时间、CPU 使用率、系统调用等信息并将这些信息输出到终端上。执行完命令后终端将输出三个时间值分别是实际时间real time指命令从开始到结束的实际耗时。用户 CPU 时间user time指命令在用户态运行的 CPU 时间不包括系统调用时间。- 系统 CPU 时间system time指命令在内核态运行的 CPU 时间包括系统调用时间。time mysql-h gz-cynosdbmysql-grp-6euxe8df.sql.tencentcdb.com-P27859-u root-pTestSchool123-eshow status;可以看到real显示执行子3秒表示在服务器暂停状态下在3秒中完成了mysql的连接当然这里也有网络的原因但是说明服务器在默认设置的时间内没有使用就会停用。有连接进来的时候就会马上几秒钟就能连接。八、弹性策略mysqlslap 是 MySQL 官方自带的一个压力测试工具。它通过模拟多个并发客户端访问 MySQL 来执行压力测试通过结果信息可以了解数据库的性能状况。mysqlslap 是系统运维和 DBA 人员应该掌握一些常见的压力测试工具之一其主要工作场景就是对数据库服务器做基准测试。比如服务器的硬件资源能够支持多大的访问压力呢优化了操作系统的内核参数后是否提升了性能调整了 MySQL 配置参数后对性能有多少影响mysqlslap-h gz-cynosdbmysql-grp-6euxe8df.sql.tencentcdb.com-P27859-uroot-p TestSchool123--concurrency200--number-of-queries1000--create-schematest_school--queryINSERT INTO data_scores (\name\, \score\) VALUES (david, 30)--iterations300–concurrency200指定同时有 200 个客户端连接–number-of-queries1000指定总的测试查询次数并发客户端数 * 每个客户端的查询次数这样本样例平均每个客户端查询 10 次运行结果如下Average number of seconds to run all queries运行所有语句的平均秒数Minimum number of seconds to run all queries运行所有语句的最小秒数Maximum number of seconds to run all queries运行所有语句的最大秒数Number of clients running queries客户端数量Average number of queries per client每个客户端运行查询的平均数如下为CCU的变化示意图可以看到CCU从0.2到0.6再到0.2的一个变化用多少就会弹性多少。CPU使用率阤是从0%到16%再到0%。内存的使用率也是一样的从0%到2.4%再到3.63%。Serverless 服务的弹性策略一开始会根据用户购买时选择的容量范围将 CPU、内存资源限制到最大规格极大程度降低因 CPU 和内存扩容带来的时间影响和使用限制。当集群触发到自动弹性的负载阈值后Buffer pool 会根据监控提前进行分钟级调整。在这个方案下用户使用数据库可以无感知进行 CPU 扩容。九、Serverless 服务架构Serverless 服务是腾讯云自研的新一代云原生关系型数据库 TDSQL-C MySQL 版的无服务器架构版是全 Serverless 架构的云原生数据库。按需启动不需要时可关闭。自动扩展/收缩。缩放对应用程序无影响。连接不断转发请求能力当有连接访问时系统会秒级自动启动处于暂停状态的数据库用户不需设置重连机制。TDSQL-C MySQL 版的接入层增加了一个恢复感知器简称 perceptron的模块来实现请求转发perceptron 在和客户端握手之后不会使用户端到集群的连接断连。恢复集群后与 TDSQL-C MySQL 版握手后续转发四层报文。整体流程设计采用了两个挑战随机数进行鉴权以实现中继模块 perceptron 不存储用户名密码的情况下也可以完成用户名密码验证保证了用户密码的安全性也不会引入存储密码不一致的问题。十、微信云托管微信云托管 是微信团队提供的以云原生为基础的免运维、高可用服务上云解决方案无需服务器1分钟即可部署小程序/公众号服务端。微信云托管支持目前绝大多数语言/框架项目开发者可以从服务器平滑迁移并且微信云托管的自动运维和扩缩容特性无需开发者关心服务的可用性专注于业务极大节省人力和服务资源成本。同时微信云托管还集成持续交付部署DevOps自动化安全鉴权等众多能力致力于帮助没有深层运维经验的业务开发者和研发团队用最低的成本打造出稳定性高安全性强的后端服务。1. 流量不稳定触发型业务流量不稳定服务闲时资源利用率低造成资源浪费。 接入微信云托管可按实时流量自动扩缩容突发场景下可在20s内快速扩容支持业务运行1小时内无流量实例副本数支持缩容到0做到无流量时无成本消耗。 同时微信云托管按实际用量计费大大降低成本再结合MySQL数据库、对象存储等服务也可以同时降低数据库存储的使用成本。2. 费用预估对比费用预估均基于刊例价不考虑折扣、特惠活动、资源包、优惠券等。可理解为理论上的最高价。Q如何理解CPU计费单位核*小时和内存计费单位GB * 小时A在云托管中每个服务下有一个运行中的版本在发布过程中服务同时有新旧两个版本在运行中每个版本会消耗一定数量的实例。每个实例的规格CPU几核、内存几GB就好像它的“功率”。实例运行了多久它所消耗的资源量就是规格乘以运行时间精确到秒。一个0.25核0.5GB的实例运行4个小时消耗的资源量是CPU0.25 * 4 1 核*小时内存0.5 * 4 2 GB * 小时一个1核2GB的实例运行1个小时消耗的资源量是CPU1 * 1 1 核*小时内存2 * 1 2 GB * 小时两个0.5核1GB的实例运行1个小时消耗的资源量是CPU0.5 * 2 * 1 1 核*小时内存1 * 2 * 1 2 GB * 小时可以看到他们消耗的资源量是完全相同的产生的费用也是完全一样的。从另一个角度来说传统模式下以包月方式购买有效期一个月的一台1核2GB的云服务器实际是你买断了一个月的固定的CPU和内存消耗量CPU1 * 24 * 30 720 核小时内存2 * 2430 1440 GB * 小时和云托管的按量计费模式区别在于一个月内无论你的你可以完全释放冗余的计算资源大幅降低成本。Q如何理解MySQL的计费单位CCU个*小时ACCU是MySQL的算力单位0.25CCU对应传统模式中0.25核0.5GB的数据库的计算能力1CCU对应传统模式中1核2GB的数据库的计算能力依此类推。CCU最大可达到16CCU对应传统模式中16核32GB的数据库的计算能力。数据库计算消耗的资源量就是实时算力乘以运行时间精确到秒。从另一个角度来说传统模式下以包月方式购买有效期一个月的一个1核2GB的云数据库等效1CCU的算力实际是你买断了一个月的固定的CCU算力消耗量1 * 24 * 30 720 个*小时。和云托管MySQL的按量计费模式区别在于一个月内无论你的云数据库实际利用率多少你都支付了全部资源量的费用用不够一个月也按一个月算。基于云托管的自动弹性伸缩特性你可以完全释放冗余的计算资源大幅降低成本。Q弹性伸缩很方便但是用量不透明感觉心里没底A云托管提供详细的监控数据可实时掌刻冻结服务停止新的费用产生。此时线上业