PolarDB-X对于性能压测中生产库,影子库怎么处理了?

PolarDB-X对于性能压测中生产库,影子库怎么处理了?

展开
收起
闻闻615 2024-01-31 15:08:24 124 分享 版权
阿里云 AI 助理回答

在PolarDB-X的性能压测中,生产库和影子库的处理方式是通过全链路压测机制实现的。以下是具体的处理方法和操作步骤:


1. 影子库的作用

PolarDB-X为了兼容某些客户端从系统表(如COLUMNSTABLES)中获取表结构的功能,在0分库RDS中创建了一个影子库
- 影子库与PolarDB-X逻辑库名一致,存储了逻辑库中所有的表结构信息。 - 在性能压测场景中,影子库用于模拟生产库的行为,确保压测数据不会污染生产环境。


2. 全链路压测中的影子表

在全链路压测中,PolarDB-X支持创建影子表,以隔离压测流量和生产流量。
- 影子表的命名规则:表名必须以_test_为前缀,且前缀后的表名部分必须与关联的正式表名一致。 - 创建顺序:正式表必须先于影子表创建。

示例:

CREATE TABLE `_test_sbtest1` (
  `id` int(10) unsigned NOT NULL,
  `k` int(10) unsigned NOT NULL DEFAULT '0',
  `c` char(120) NOT NULL DEFAULT '',
  `pad` char(60) NOT NULL DEFAULT '',
  KEY `xid` (`id`),
  KEY `k_1` (`k`)
) dbpartition by hash(`id`) tbpartition by hash(`id`) tbpartitions 4;

3. 压测流量的隔离

PolarDB-X通过以下机制确保压测流量与生产流量的隔离: - HTAP能力:PolarDB-X支持OLTP和OLAP混合负载,能够智能识别TP(事务处理)和AP(分析处理)流量,并将它们路由到不同的副本上。 - 影子库/影子表:压测流量会自动写入影子库或影子表,避免对生产库造成影响。


4. 压测前的准备工作

在进行性能压测之前,需要完成以下配置: 1. 调整实例参数: - 修改XPROTO_MAX_DN_CONCURRENTXPROTO_MAX_DN_WAIT_CONNECTION的值为4000,以优化压测性能。 - 关闭日志记录和CPU采样统计,减少性能开销: sql SET GLOBAL RECORD_SQL = false; SET GLOBAL ENABLE_HTAP = true; SET GLOBAL ENABLE_MASTER_MPP = true; SET GLOBAL MPP_METRIC_LEVEL = 0; SET GLOBAL ENABLE_CPU_PROFILE = false; SET GLOBAL ENABLE_SORT_AGG = false; SET GLOBAL MPP_PARALLELISM = 192; SET GLOBAL GROUP_PARALLELISM = 8;

  1. 准备压测数据

    • 使用Sysbench工具生成压测数据,并指定分库分表策略。
    • 示例建表语句:
      CREATE TABLE `sbtest1` (
      `id` int(10) unsigned NOT NULL,
      `k` int(10) unsigned NOT NULL DEFAULT '0',
      `c` char(120) NOT NULL DEFAULT '',
      `pad` char(60) NOT NULL DEFAULT '',
      KEY `xid` (`id`),
      KEY `k_1` (`k`)
      ) dbpartition by hash(`id`) tbpartition by hash(`id`) tbpartitions 4;
      
  2. 创建影子表

    • 确保影子表与正式表结构一致,并遵循命名规则。

5. 压测后的清理工作

压测完成后,需要清理影子库或影子表中的数据,以释放存储空间并避免对后续操作产生干扰: - 删除影子表:

DROP TABLE `_test_sbtest1`;
  • 如果影子库中的表结构未同步更新,需手动执行DDL操作以保持一致性。

6. 注意事项

  • 影子库与生产库的一致性CHECK TABLE命令不会检测影子库表结构与PolarDB-X逻辑库表结构是否一致,因此需要手动检查并同步。
  • 压测环境隔离:确保压测流量仅写入影子库或影子表,避免对生产环境造成影响。
  • 性能监控:在压测期间,可通过PolarDB-X的实时性能监控功能查看数据库性能指标,确保压测过程稳定。

通过以上步骤,PolarDB-X能够在性能压测中有效隔离生产库和影子库,确保压测数据的安全性和压测结果的准确性。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答

PolarDB 分布式版 (PolarDB for Xscale,简称“PolarDB-X”) 采用 Shared-nothing 与存储计算分离架构,支持水平扩展、分布式事务、混合负载等能力,100%兼容MySQL。 2021年开源,开源历程及更多信息访问:OpenPolarDB.com/about

还有其他疑问?
咨询AI助理