数据库应用参数
参数顺序根据测试用例及参数敏感性排序。
MySQL
MySQL数据库应用的整体性能对存储子系统的I/O特性高度敏感。在实际测试中,基于SSD/NVMe存储介质的部署环境相较于传统HDD,在事务处理能力、延迟控制以及并发请求吞吐方面均表现出显著优势。两类介质在性能表现上存在较大差距,主要源于SSD/NVMe在随机读写性能和IOPS方面的天然优势。
因此建议在生产环境中优先选择SSD或NVMe作为数据库的存储介质,以充分发挥MySQL的性能潜力,并获得更稳定的延迟表现。对于仍使用HDD的场景,应结合业务负载特征进行容量与性能权衡,同时关注I/O瓶颈对整体应用性能的潜在影响。
- 业务参数
MySQL的性能调优应结合具体应用场景的读写特性开展,在参考表1所列推荐参数及调优分析的基础上,可根据业务负载特点适当调整参数值,以优化系统整体性能和资源利用效率。
表1 MySQL业务参数 推荐参数
调优分析
参数名称
参数含义
调整范围
Testing Case
重要性比率(%)
参考最优值(vs. Baseline)
参考最劣值(vs. Baseline)
sync_binlog
事务提交时binlog的刷盘频率
{0, 1}
oltp_read_write
59.7%
1
(+8.9%)
0
innodb_flush_method
InnoDB数据、日志的写入方式
{fsync, O_DSYNC, O_DIRECT,O_DIRECT_NO_FSYNC}
13.1%
O_DIRECT_NO_FSYNC
O_DIRECT
binlog_cache_size
单个事务写入binlog的内存缓存大小
[1, 256]
oltp_write_only
32.4%
254
(+17.2%)
115
innodb_write_io_threads
InnoDB写操作的I/O后台线程数量
[1, 64]
10.1%
18
58
performance_schema
MySQL内置的实时性能监控系统
{ON, OFF}
oltp_read_only
64.7%
OFF
(+8.9%)
ON
innodb_adaptive_hash_index
InnoDB自适应哈希索引
{ON, OFF}
15.7%
ON
OFF
“重要性比率”来源于KAT工具内置的参数重要性分析功能。该功能基于KAT调优的历史数据,针对指定测试用例定量评估各参数对性能指标的影响程度,以百分比形式呈现,通过参考该比率,可以识别性能敏感参数,并进行进一步的优化分析与调优决策,从而实现更精确的性能优化指导。
- 系统参数
表2 MySQL系统参数 推荐参数
调优分析
参数名称
调整范围
Testing Case
重要性比率(%)
测试环境默认值
参考最优值(vs. Baseline)
参考最劣值(vs. Baseline)
scheduler
{mq-deadline, kyber, bfq, none}
oltp_read_write
57.6%
mq-deadline
none(+3.1%)
bfq(-89.6%)
max_sectors_kb
[68, 128]
oltp_write_only
10.8%
512
86(+1.0%)
-
kernel.sched_cluster
{0, 1}
oltp_read_only
%
0
1(+0.5%)
-
openGauss
- 业务参数
建议在openGauss启动配置中将enable_codegen设置为off,并配合较低的random_page_cost参数优化应用性能。
表3 openGauss业务参数 推荐参数
调优分析
参数名称
参数含义
调整范围
重要性比率(%)
参考最优值(vs. Baseline)
参考最劣值(vs. Baseline)
enable_codegen
SQL代码执行优化
{on, off}
28.7%
off(+2.3%)
on(-24.3%)
random_page_cost
设置优化器计算一次非顺序抓取磁盘页的开销
[0.0, 100.0]
22.7%
2.0(+2.3%)
96.0(-24.3%)
- 系统参数
表4 openGauss系统参数 推荐参数
调优分析
参数名称
调整范围
重要性比率(%)
测试环境默认值
参考最优值(vs. Baseline)
参考最劣值(vs. Baseline)
scheduler
{mq-deadline, kyber, bfq, none}
34.0%
mq-deadline
bfq (+21.2%)
none (-4.8%)
Redis
- 业务参数
针对业务参数,各场景下的敏感参数基本一致,但其参数值对性能的影响存在差异。表5仅提供MSET场景的参数调优参考。在实际生产环境中,应结合具体应用负载和业务特性,进行相应的参数调整,以实现最佳性能优化。
表5 Redis业务参数 推荐参数
调优分析
参数名称
参数含义
调整范围
Testing Case
重要性比率(%)
参考最优值(vs. Baseline)
set-max-intset-entries
set对象的整数集合编码(intset)存储的最大元素个数阈值
[32, 4096]
MSET写入场景
25.5%
3787
(+27.9%)
maxmemory
Redis实例可使用的最大内存
[1, 1048576]
23.3%
214068
hash-max-ziplist-value
Hash类型中,单个字段值能使用压缩列表存储的最大字节数
[32, 4096]
13.7%
1791
maxclients
Redis允许的最大客户端连接数
[1, 65536]
13.3%
18907
zset-max-ziplist-entries
有序集合使用压缩列表存储的最大元素数
[32, 4096]
11.1%
3691
hash-max-ziplist-entries
Hash类型使用压缩列表存储的最大字段数
[32, 4096]
10.3%
159
- 系统参数
建议将系统参数transparent_hugepage_mode设置为never,并将kernel.sched_cluster设置为1,以优化Redis的内存管理和调度行为。
表6 Redis系统参数 推荐参数
调优分析
参数名称
调整范围
重要性比率(%)
测试环境默认值
参考最优值(vs. Baseline)
transparent_hugepage_mode
{madvise, never, always}
75.0%
never
always (+6.8%)
kernel.sched_cluster
{0, 1}
21.2%
0
1 (+1.2%)
RocksDB
- 业务参数
建议在RocksDB启动时将write_buffer_size和batch_size设置为相对较大的值,以提升写入吞吐能力。
表7 RocksDB业务参数 推荐参数
调优分析
参数名称
参数含义
调整范围
重要性比率(%)
参考最优值(vs. Baseline)
参考最劣值(vs. Baseline)
write_buffer_size
单个MemTable的最大大小
[2, 268435456]
39.4%
185884824
(+65.3%)
3764887
(-68.8%)
batch_size
一次批量写入操作包含的键值对数量
[1, 256]
23.3%
200
10
block_size
SST文件中数据块大小
[2, 262144]
10.5%
10
121480
target_file_size_base
Level 1 SST文件大小
[2, 268435456]
9.1%
129960935
83333272
- 系统参数
建议适当增大系统参数vm.dirty_background_ratio和vm.max_map_count的值,同时设置较高的vm.vfs_cache_pressure,以优化RocksDB的内存管理和缓存策略,从而提升整体性能表现。
表8 RocksDB系统参数 推荐参数
调优分析
参数名称
调整范围
Testing Case
重要性比率(%)
测试环境默认值
参考最优值(vs. Baseline)
参考最劣值(vs. Baseline)
vm.dirty_background_ratio
[0, 100]
fillseq、fillrandom
35.3%
10
25(+1.9%)
0 (-17.2%)
vm.max_map_count
[65530, 10000000]
readrandomwriterandom
9.7%
65530
6876145(+2.2%)
-
vm.vfs_cache_pressure
[0, 500]
multireadrandom
6.9%
100
445(+1.0%)
9 (-5.5%)
Vastbase G100
推荐参数 |
调优分析 |
|||
---|---|---|---|---|
参数名称 |
参数含义 |
调整范围 |
重要性比率(%) |
参考最优值 |
autovacuum_naptime |
自动清理(autovacuum)进程的休眠时间 |
[1, 1200] |
24.9% |
5 |
shared_buffers |
缓存数据块的共享内存大小 |
[1, 10] |
22.6% |
2 |