OceanBase学习之路50|默认生产参数的建议配置是什么?

本节主要从硬件配置、TP 使用场景、AP 使用场景等提供默认生产参数的建议配置。

典型硬件配置

根据各自的生产标准,不同用户的服务器配置可能不同,本文主要以下表中的硬件配置作为典型配置,介绍不同场景的生产系统上默认使用的参数。

服务器配置项 描述
服务器数量 3 台
芯片 Intel
CPU 52 Core
内存 512 GB
磁盘
  • 数据盘:3.84 TB NVME x 6
  • 系统盘:240 G M.2
网卡 万兆网卡
操作系统 CentOS 7.6

基于 TP 使用场景

集群级参数

  • system_memory:用于设置系统预留给租户 ID 为  500 的租户的内存容量。

    • 建议值:0M

    • 取值范围:[0M, +∞)

    • 示例:

      obclient> ALTER SYSTEM SET system_memory='30G';
  • rootservice_memory_limit:用于设置 RootService 的最大内存容量限制。

    • 建议值:2G

    • 取值范围:[2G, +∞)

    • 示例:

      obclient> ALTER SYSTEM SET rootservice_memory_limit='2G';
  • major_compact_trigger:用于设置多少次小合并触发一次全局合并。

    • 建议值:50

    • 取值范围:[0, 65535]

    • 示例:

      obclient> ALTER SYSTEM SET major_compact_trigger=50;
  • memstore_limit_percentage:用于设置租户使用 MEMStore 的内存占其总可用内存的百分比。

    • 建议值:80

    • 取值范围:(0, 100)

    • 示例:

      obclient> ALTER SYSTEM SET memstore_limit_percentage=80;
  • trace_log_slow_query_watermark:用于设置查询的执行时间阈值,如果查询的执行时间超过该阈值,则被认为是慢查询,慢查询的追踪日志会被打印到系统日志中。

    • 建议值:100ms

    • 取值范围:[1ms, +∞)

    • 示例:

      obclient> ALTER SYSTEM SET trace_log_slow_query_watermark='100ms';
  • enable_syslog_recycle:用于设置是否开启回收系统日志的功能。

    • 建议值:True

    • 取值范围:True,False

    • 示例:

      obclient> ALTER SYSTEM SET enable_syslog_recycle=True;
  • max_syslog_file_count:用于设置在回收日志文件之前可以容纳的日志文件数量。

    • 建议值:500

    • 取值范围:[0, +∞)

    • 示例:

      obclient> ALTER SYSTEM SET max_syslog_file_count=500;
  • enable_rebalance:用于设置是否开启自动负载均衡的功能。

    • 建议值:True

    • 取值范围:True,False

    • 示例:

      obclient> ALTER SYSTEM SET enable_rebalance=True;

租户级参数

  • freeze_trigger_percentage:用于设置触发全局冻结的租户使用内存阈值。

    • 建议值:20

    • 取值范围:(0, 100)

    • 示例:

      obclient> ALTER SYSTEM SET freeze_trigger_percentage=20;
  • writing_throttling_trigger_percentage:用于设置写入速度的阈值。当值为  100 时,表示关闭写入限速机制。

    • 建议值:80

    • 取值范围:[0, 100]

    • 示例:

      obclient> ALTER SYSTEM SET writing_throttling_trigger_percentage=80;
  • undo_retention:表示系统应保留的多版本数据范围,单位为秒,在转储时控制多版本数据的回收。

    • 建议值:1800

    • 取值范围:[0, 4294967295]

    • 示例:

      obclient> ALTER SYSTEM SET undo_retention=1800;
  • cpu_quota_concurrency:用于设置租户的每个 CPU 配额所允许的最大并发数。

    • 建议值:4

    • 取值范围:[1, 10]

    • 示例:

      obclient> ALTER SYSTEM SET cpu_quota_concurrency=4;

系统变量

  • recyclebin:用于设置是否开启回收站功能。

    • 建议值:OFF

    • 取值范围:ON,OFF

    • 示例:

      obclient> SET GLOBAL recyclebin=OFF;
  • ob_query_timeout:用于设置查询超时时间,单位是微秒。

    • 建议值:10000000

    • 取值范围:N/A

    • 示例:

      obclient> SET GLOBAL ob_query_timeout=10000000;
  • ob_trx_idle_timeout:用于设置事务空闲超时时间,即事务中两条语句之间的执行间隔超过该值时超时,单位为微秒。

    • 建议值:86400000000

    • 取值范围:[100000000,+∞)

    • 示例:

      obclient> SET GLOBAL ob_trx_idle_timeout=120000000;
  • ob_trx_timeout:用于设置事务超时时间,单位为微秒。

    • 建议值:86400000000

    • 取值范围:N/A

    • 示例:

      obclient> SET GLOBAL ob_trx_timeout=100000000;
  • ob_sql_work_area_percentage:用于 SQL 执行的租户内存百分比限制。

    • 建议值:5

    • 取值范围:[0, 100]

    • 示例:

      obclient> SET GLOBAL ob_sql_work_area_percentage=5;
  • parallel_servers_target:用于设置每个 Server 上的大查询排队条件。当并行执行(Parallel eXecution,PX)消耗的线程数超过大查询排队条件后,后继并行执行需要排队等待。

    • 建议值:租户 CPU 核数 * 10

    • 取值范围:[0, 9223372036854775807]

    • 示例:

      obclient> SET GLOBAL parallel_servers_target=30;
  • max_allowed_packet:用于设置最大网络包大小,单位是 Byte。

    • 建议值:4194304

    • 取值范围:[1024,1073741824]

    • 示例:

      obclient> SET GLOBAL max_allowed_packet=4194304;
  • nls_date_format:用于控制 Date 类型转 Str 的格式,以及 Str 隐式转 Date 的格式。

    说明

    该参数仅适用于 Oracle 模式。

    • 建议值:DD-MON-RR

    • 取值范围:N/A

    • 示例:

      obclient> SET GLOBAL nls_date_format='DD-MON-RR';

基于 AP 使用场景

集群级参数

  • trace_log_slow_query_watermark:用于设置查询的执行时间阈值,如果查询的执行时间超过该阈值,则被认为是慢查询,慢查询的追踪日志会被打印到系统日志中。

    • 建议值:10s

    • 取值范围:[1ms,+∞)

    • 示例:

      obclient> ALTER SYSTEM SET trace_log_slow_query_watermark='10s';
  • memstore_limit_percentage:用于设置租户使用 MemStore 的内存占其总可用内存的百分比。

    • 建议值:50

    • 取值范围:(0, 100)

    • 示例:

      obclient> ALTER SYSTEM SET memstore_limit_percentage=50;
  • large_query_worker_percentage:用于设置预留给处理大查询的工作线程百分比。

    • 建议值:10

    • 取值范围:[0,100]

    • 示例:

      obclient> ALTER SYSTEM SET large_query_worker_percentage=10;
  • net_thread_count:用于设置网络 I/O 线程数。

    • 建议值:24

    • 取值范围:[1,64]

    • 示例:

      obclient> ALTER SYSTEM SET net_thread_count=24;
  • rpc_timeout:用于设置集群内部请求的超时时间,单位为微秒。

    • 建议值:1000000000

    • 取值范围:[0,+∞)

    • 示例:

      obclient> ALTER SYSTEM SET rpc_timeout=1000000000;
  • micro_block_merge_verify_level:用于设置合并时宏块的校验级别。

    • 建议值:0

    • 取值范围:

      • 0:表示不做校验

      • 1:表示验证编码算法,将读取编码后的微块以确保数据正确

      • 2:表示验证编码和压缩算法,除编码验证外,还将对压缩块进行解压缩以确保数据正确

      • 3:表示验证编码,压缩算法和丢失写保护

    • 示例:

      obclient> ALTER SYSTEM SET micro_block_merge_verify_level=0;
  • enable_sql_audit:用于设置是否开启 SQL 审计功能。

    • 建议值:False

    • 取值范围:True,False

    • 示例:

      obclient> ALTER SYSTEM SET enable_sql_audit=False;
  • enable_perf_event:用于设置是否开启性能事件的信息收集功能。

    • 建议值:False

    • 取值范围:True,False

    • 示例:

      obclient> ALTER SYSTEM SET enable_perf_event=False;
  • cache_wash_threshold:用于设置触发缓存清理的容量阈值。如果内存空间小于指定值时,内存空间将被清理。

    • 建议值:30GB

    • 取值范围:[0, +∞)

    • 示例:

      obclient> ALTER SYSTEM SET cache_wash_threshold='30GB';

租户级参数

  • undo_retention:表示系统应保留的多版本数据范围,单位为秒,在转储时控制多版本数据的回收。

    • 建议值:900

    • 取值范围:[0, 4294967295]

    • 示例:

      obclient> ALTER SYSTEM SET undo_retention=900;

系统变量

系统租户可参考以下设置完成基础变量的配置:

  • ob_query_timeout:用于设置查询超时时间,单位是微秒。

    • 建议值:10000000000

    • 取值范围:N/A

    • 示例:

      obclient> SET GLOBAL ob_query_timeout=10000000000;
  • ob_trx_timeout:用于设置事务超时时间,单位为微秒。

    • 建议值:86400000000

    • 取值范围:N/A

    • 示例:

      obclient> SET GLOBAL ob_trx_timeout=100000000000;

普通租户可参考以下设置完成常规变量的配置:

  • ob_sql_work_area_percentage:用于 SQL 执行的租户内存百分比限制。

    • 建议值:70

    • 取值范围:[0, 100]

    • 示例:

      obclient> SET GLOBAL ob_sql_work_area_percentage=70;
  • parallel_servers_target:用于设置每个 Server 上的大查询排队条件。当并行执行(Parallel eXecution,PX)消耗的线程数超过大查询排队条件后,后继并行执行需要排队等待。

    • 建议值:租户 CPU 核数 * 30

    • 取值范围:[0, 9223372036854775807]

    • 示例:

      obclient> SET GLOBAL parallel_servers_target=90;
  • max_allowed_packet:用于设置最大网络包大小,单位是 Byte。

    • 建议值:67108864

    • 取值范围:[1024,1073741824]

    • 示例:

      obclient> SET GLOBAL max_allowed_packet=67108864;


请使用浏览器的分享功能分享到微信等