本节主要从硬件配置、TP 使用场景、AP 使用场景等提供默认生产参数的建议配置。
典型硬件配置
根据各自的生产标准,不同用户的服务器配置可能不同,本文主要以下表中的硬件配置作为典型配置,介绍不同场景的生产系统上默认使用的参数。
| 服务器配置项 | 描述 |
|---|---|
| 服务器数量 | 3 台 |
| 芯片 | Intel |
| CPU | 52 Core |
| 内存 | 512 GB |
| 磁盘 |
|
| 网卡 | 万兆网卡 |
| 操作系统 | 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;




