其他
存储空间压缩6倍 ,多点DMALL零售SaaS场景降本实践
🧑💼 作者简介
冯光普:多点 DMALL 数据库团队负责人,负责数据库稳定性建设与 DB PaaS 平台建设,在多活数据库架构、数据同步方案等方面拥有丰富经验。
杨家鑫:多点高级 DBA,擅长故障分析与性能优化,喜欢探索新技术。
要么我们不断推动研发清理数据,做数据归档,然而结果往往很被动,因为研发的重点工作是业务需求迭代;
要么继续扩展磁盘,如果是在云上,扩展空间比较容易,云厂商提供的块存储单盘可以达到 32TB 甚至更大,但数据继续增长,仅仅是将风险延后, 治标不治本, 后续会更加被动。
OceanBase | MySQL | |
社区版本 | v4.1.0 | v5.7.16 |
内存配置 | 租户memory_size 16G | innodb_buffer_pool_size 16G |
单机器配置 | 32C RAID10 SSD | 32C RAID10 SSD |
刷盘配置 | 默认强制刷盘 | sync_binlog=1 innodb_flush_log_at_trx_commit=2 |
并发数 | 5,10,20,30,60,120 | 5,10,20,30,60,120 |
测试模式 | read_write,read_only,write_only | read_write,read_only,write_only |
单次测试时间 | 300s,共18种测试(并发数x测试模式) | 300s,共18种测试(并发数x测试模式) |
每种测试方法 | obd test sysbench(obd自带) 会先 prepare、再 run、再cleanup | sysbench prepare sysbench run sysbench cleanup |
生产环境监控快照场景 MySQL 存储(单副本)对比 OceanBase 存储(单副本),数据压缩率为 6:1,OceanBase 的数据压缩比优秀;
单机部署并且连接 obproxy,在并发度较低时,OceanBase QPS 和平均延迟表现稍逊 MySQL(最低 QPS 也过万,租户内存越高 QPS 性能越好;最低平均延迟 3ms)。在并发度逐渐上升的过程中,OceanBase 各项性能的提升比例会高于 MySQL(当并发度超过 200 之后,OceanBase 各项性能会逼近甚至超过 MySQL);
MySQL 一层架构、OceanBase 二层架构(obproxy + observer,单机部署时直连 observer 比连 obproxy 性能会提升 30%~50%)。每多一层,网络层面的延迟消耗会增加。
租户之间的资源隔离能力:OceanBase 的多租户是从CPU、 内存、I/O 上进行物理隔离,这非常关键,保证了业务之间不会出现资源争抢,相互影响,不会因为一个业务而影响其他的租户。
租户的快速弹性伸缩能力:对于一个租户而言,假设有 3 个 Zone,每个 Zone 有 2 台机器,一共 6 台机器,每台机器 有 1 个资源单元。如果想去扩容,只需要一条 SQL语句,就可以加上 Zone 4、加上 Zone 5,变成更多的 Zone,从 6 个资源单元变成了 10 个,轻松完成水平扩容。同时垂直类的扩容也很简单,比如初期给定的资源是 2C8G,业务增长后,又不想加机器,可以把资源单元从 2C8G 变更为 6C12G,整个过程是动态无损的,业务无感知。这对 DBA 来讲也是一条 SQL 就能搞定,极大降低了工作量。因此,多租户能力很好地解决了 SaaS 场景需要部署一套系统,想要节省成本且方便后期扩容的需求。