如何在Oceanbase上进行YCSB测试

【 使用环境 】生产环境 or 测试环境
【 OB or 其他组件 】
【 使用版本 】
【问题描述】请问如何用YCSB来测试oceanbase的性能?

可以参考这个帖子
如何使用YCSB负载对oceanbase进行测试?8m776j_gaMTI2ODUxMDY3NC4xNzM5OTQzNTg5_ga_T35KTM57DZ*MTc0MDYzNjAwOC4xNS4xLjE3NDA2MzY5MDQuMzQuMC4w

具体操作有吗?

https://github.com/brianfrankcooper/YCSB/tree/master 你看看这个 原生YCSB上直接支持MYSQL的,直接把OceanBase当成MYSQL测试就可以了

https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000002022340按照这个测试,不购买oceanbase数据库,用自己部署的单机oceanbase测试教程有吗,测试和ob部署都在一台机器上

官网没有这个教程 自己可以搜一下mysql教程

@论坛小助手

根据文档库中的信息,虽然没有直接针对 YCSB 测试 OceanBase 的具体步骤说明,但可以综合现有文档内容并结合 YCSB 对 MySQL 的支持来构建一个适用于单机环境的测试方案。以下是基于您提供的条件(使用环境为测试环境,组件为 OceanBase,版本未明确指定)的具体操作指南:

1. 准备工作

1.1 安装 YCSB

由于 YCSB 原生支持 MySQL,而 OceanBase 社区版兼容 MySQL 协议,因此可以直接利用 YCSB 的 MySQL 驱动进行测试。请先从 YCSB GitHub 下载并编译 YCSB。

git clone https://github.com/brianfrankcooper/YCSB.git
cd YCSB
mvn -pl site -am clean package    # 编译 YCSB

1.2 部署单机版 OceanBase

如果您还没有部署 OceanBase,请参考官方文档中关于如何在单台机器上安装和配置 OceanBase 的指导。这里推荐使用 obd 工具简化部署过程,详情可参见 OceanBase 安装部署工具

2. 环境调优

为了确保测试结果的有效性,在开始之前需要对 OceanBase 数据库及 OBProxy 进行必要的参数调整。这部分内容可以在 进行 Sysbench 测试 → 手动进行 Sysbench 测试 → 步骤二:环境调优 中找到类似的操作示例,尽管它是针对 Sysbench 的,但对于 YCSB 测试同样适用。

例如:

  • 提高 OBProxy 运行时内存上限
  • 关闭 SQL 审计功能等
# 使用 OBProxy 节点 IP 和端口登录 OceanBase 数据库的系统租户
obclient -h<host_ip> -P<host_port> -uroot@sys -A -p

# OBProxy 调优命令
ALTER proxyconfig SET proxy_mem_limited='4G';
ALTER proxyconfig set enable_compression_protocol=false;

# OceanBase 数据库调优命令
ALTER system SET enable_sql_audit=false;
ALTER system SET enable_perf_event=false;
ALTER system SET syslog_level='ERROR';
alter system set enable_record_trace_log=false;

3. 执行 YCSB 测试

完成上述准备工作后,接下来就可以通过 YCSB 来执行实际的性能测试了。因为 OceanBase 支持 MySQL 协议,所以你可以按照 YCSB 文档中有关 MySQL 的部分来进行设置。确保正确指定了连接字符串、数据库名称以及其他必要的参数。

# 示例命令,具体参数需根据实际情况调整
./bin/ycsb load mysql -s -P workloads/workloada -p mysql.host=<OB_HOST> -p mysql.port=<OB_PORT> -p mysql.user=root -p mysql.dbname=testdb

请注意,以上命令只是一个简单的加载数据的例子,实际测试时还需要考虑更多的因素,如并发线程数、操作类型等。更多细节请参考 YCSB 的官方文档。

注意事项

  • 资源隔离:尽量避免在同一台机器上同时运行多个服务(如 OBProxy 和 OceanBase),以减少资源竞争带来的影响。
  • 磁盘 IOPS:建议磁盘 IOPS 设置在 10000 以上,并且将系统日志、事务日志、数据文件分开存储于不同的物理磁盘上,以提高性能。
  • 自定义工作负载:如果默认的工作负载不能满足需求,可以通过编写自定义的工作负载文件来模拟更贴近实际业务场景的情况。

希望这些信息能够帮助到您!如果有任何疑问或遇到问题,欢迎随时提问。

更多信息请查看:

  1. 进行 Sysbench 测试
  2. 在 OceanBase 数据库上进行 TPC-C 测试
  3. OceanBase 数据库测试概述
  4. 进行 TPC-C 测试
  5. 使用 obd.sh 执行 mysqltest