云原生多模数据库 Lindorm将容量型云存储作为冷存储介质,用于存储数据库中访问频率较低的历史数据(冷数据),从而降低存储成本。本文介绍容量型云存储的功能特性及性能测试结果。
功能特性
存储成本低。
存储成本仅为标准型云存储成本的20%。
支持数据写入能力,并保证数据随时可读。
使用简单。
购买Lindorm实例时选择容量型云存储并选择存储空间,然后通过创建表格语句将冷数据存储至容量型云存储中即可。
支持同一张表内的冷热分离功能。
冷热分离功能可以自动将表中的热数据存储至读写速度更快的热存储中,将不常访问的历史数据存储至容量型云存储中,从而降低存储成本。如果您在业务上有冷热分离的需求,请参见冷热分离介绍。
开通容量型云存储
如何开通容量型云存储,请参见开通容量型云存储。
容量型云存储性能测试
测试环境:Master: ecs.c5.xlarge,4 Core 8GB;4个 RegionServer:ecs.c5.xlarge,4 Core 8 GB。
写性能:
表类型 | avg rt | p99 rt |
热存储表 | 1736 us | 4811 us |
容量型云存储表 | 1748 us | 5243 us |
每条记录10列,每列100 B,也就是单行1KB,16线程写。
随机查询Get性能:
表类型 | avg rt | p99 rt |
热存储表 | 1704 us | 5923 us |
容量型云存储表 | 14738 us | 31519 us |
关闭表的BlockCache。每条记录10列,每列100 B,也就是单行1KB。8线程读,每次读出1KB。
范围查询Scan性能:
表类型 | avg rt | p99 rt |
热存储表 | 6222 us | 20975 us |
容量型云存储表 | 51134 us | 115967 us |
关闭表的BlockCache。每条记录10列,每列100 B,也就是单行1KB。8线程读,每次读出1KB。Scan的Caching设置为30。
容量型云存储性能保障
Lindorm根据您购买的容量型存储容量提供读写带宽保障。当底层存储池有闲置带宽时,系统可能提供超出保障带宽的读写能力,但这部分超额带宽不承诺稳定性保障。
不同地区的保障带宽:
地区 | 读保障带宽规则 | 写保障带宽规则 |
华东2(上海) 华南1(深圳) 华北2(北京) 华东1(杭州) 新加坡 | 最低保障5Gbps,每增加1PiB容量提升20Gbps,最高不超过50Gbps。 | 最低保障2Gbps,每增加1PiB容量提升5Gbps,最高不超过20Gbps。 |
华南3(广州) 华南2(河源) 华北1(青岛) 华北3(张家口) 西南1(成都) 华北6(乌兰察布) 华北5(呼和浩特) | 最低保障2Gbps,每增加1PiB容量提升20Gbps,最高不超过10Gbps。 | 最低保障1Gbps,每增加1PiB容量提升5Gbps,最高不超过10Gbps。 |
中国香港 日本(东京) 马来西亚(吉隆坡) 印度尼西亚(雅加达) 英国(伦敦) 德国(法兰克福) | 最低保障1Gbps,每增加1PiB容量提升20Gbps,最高不超过5Gbps。 | 最低保障1Gbps,每增加1PiB容量提升5Gbps,最高不超过5Gbps。 |
泰国(曼谷) 美国(弗吉尼亚) 美国(硅谷) | 最低保障0.6Gbps,每增加1PiB容量提升20Gbps,最高不超过2Gbps。 | 最低保障0.6Gbps,每增加1PiB容量提升5Gbps,最高不超过2Gbps。 |
容量型云存储读取限流说明
容量型云存储目前仅适用于写多读少的场景。同时,容量型云存储对读取IOPS(Input/Output Operations Per Second)存在以下限制:
每个实例的容量型云存储有一个Token(令牌)池,当监控中剩余可用Token数为
0时,容量型云存储的读取将会被限速。此时系统仅提供一个最低保底的IOPS,每个节点仅提供保底10 IOPS能力。Token池中的Token会以一定速率积累,该速率取决于实例容量型云存储的实际容量,容量越大,积累速率越快。
在Token池中还有存量的情况下,容量型云存储每次IO读取会消耗一个Token,单节点的最高IOPS为1500。
每GiB容量获得0.04 IOPS,相当于每25 GiB容量可获得1 IOPS。也就是说,每增加25 GiB容量,每秒可额外获得1个Token。
Token池存在最大容量上限,积累满后可用Token数将不再继续增加。同时,该上限也取决于容量型云存储的实际容量,容量越大,上限越大。
Token池的最大容量由实例配置决定,当积累的Token达到预设上限时,系统将停止缓存新生成的Token。具体而言,若在预设的有效周期(如48小时)内未发生Token消耗行为,Token池将仅保留最新周期内的Token数据,超出部分将被自动替换或丢弃。
上层数据引擎(例如宽表引擎、时序引擎等)对容量型云存储的访问,取决于数据引擎如何将读取请求转换为实际的IO请求。例如,一次请求命中了多个数据块因此产生了多次IO请求,或请求数据块位于缓存中因此不产生实际IO等情况。因此,无法简单地通过预估来确定上层多模引擎可以承担的读取请求QPS,建议根据Token池的消耗情况进行评估。
容量型云存储监控指标说明
登录Lindorm管理控制台。在左上角选择实例所属的地域。在实例列表页,单击目标实例ID或者目标实例所在行操作列的管理。
在左侧导航栏,单击实例监控,查看集群概况中的集群存储详情。各项指标说明如下:
指标
说明
容量型云存储读取token
实例级别指标,包括容量型云存储可用Token的百分比,可用Token数量和最大Token数量。每次读取IO会消耗1个Token,如果实例整体可用Token百分比降为
0%,读请求将会被限流等待。容量型云存储读取情况
包括所有节点和客户端读取IOPS的总和、读取流量,每次读取IO会消耗1个Token。读取IOPS数值越高,Token消耗越快。由于数据引擎与IO模型的不同,数据库的读请求可能会读多次数据并消耗多个Token。
容量型云存储限流情况
表示所有节点和客户端被限流的读取请求OPS总和。该值大于
0表示有读请求被限流,会导致上层读延迟增加。重要实例整体可用Token百分比大于
0,但单节点IOPS大于1500,也会触发限流。
注意事项
容量型云存储读IOPS的能力很低,因此只适用于低频查询的场景。
容量型云存储与标准型云存储在写入吞吐量方面的性能差异较小,二者均可满足常规写入需求。
由于索引(包括二级索引、列存索引和搜索索引)的构建过程中需要回查数据,从而产生读取操作,如果的实例已开启冷热分离功能,请务必关注冷存储(容量型云存储)的限流情况。如果冷存储的读取操作受到限流,将直接影响索引的构建效率,进而可能导致写入操作出现反压现象。
容量型云存储不适合并发大量读请求的场景,并发大量的读请求可能会导致请求异常。
如果您购买的容量型云存储的存储空间较大,可根据实际业务情况调整读IOPS能力。如何调整,请联系技术支持。
每个节点管理冷数据的数据量不能超过30 TB。如果需要增加管理上限,请联系技术支持。
容量型云存储的使用占比超过95%后,将无法继续写入数据,请您在使用过程中及时关注容量型存储的使用情况。如何查看容量型存储的使用情况,请参见查看容量型云存储容量。