Skip to content

Latest commit

 

History

History
25 lines (13 loc) · 2.14 KB

2.performance-testing-overview.md

File metadata and controls

25 lines (13 loc) · 2.14 KB

6.1 性能测试概述

测试标准

测试 OceanBase 集群性能的方法有很多,如 sysbenchbenchmarksql 等。如果想对比 OceanBase 数据库与传统数据库、其他分布式数据库产品的性能差异,需要找到一个能适用彼此的测试方案。

sysbench 的功能相对较弱,只有 0.4 版本支持 Oracle,并且不同版本的 SQL 并不完全一样。相比之下,benchmarksql 更为合适,benchmarksql 有一定的业务模型且标准简单,容易统一比较。

若您还想测试业务 SQL,可选择自己写程序或者使用 JMeter

多副本同步

传统数据库或者基于 MySQL、PG 数据库的分布式数据库,通常都能以单副本实例运行。为了高可用和容灾,也支持一主多备的形态部署,主备之间的同步多是异步同步。

异步同步的优点是写性能好,风险是主副本实例故障时主备可能会不一致。即使使用了 MySQL 的半同步技术,也不能严格保证主备数据的强一致性。

OceanBase 数据库在生产环境中默认以三副本形态运行,主备副本之间通过事务日志来实现同步,同步协议使用 Paxos 强同步协议。OceanBase 数据库不支持异步同步,不支持牺牲数据安全换取性能。

故障应对能力

OceanBase 集群部署在普通商用服务器上,充分考虑了服务器的故障风险。所以 OceanBase 数据库的架构设计始终把数据安全放在首位,采用三副本强同步协议,在任意时刻发生故障时,OceanBase 数据库都能自动切换,选出新的主副本。

故障切换不需要 DBA 介入,数据库恢复时间(RTO)在 30s 左右,数据库恢复后保证数据不丢失(RPO = 0)。OceanBase 数据库的这个能力在平时很难看到,只有在发生故障时才能体现。所以,测试 OceanBase 数据库的性能时需要带着业务压力,并随机注入故障,这样才接近实际生产情况。

OceanBase 数据库的在线扩容和缩容、大表在线 DDL,都有高可用保障。节点故障后,OceanBase 数据库在恢复的同时,原有的任务都能自动继续进行。