鲲鹏社区首页
中文
注册
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助

数据库参数调优

目的

通过调整数据库的参数配置,可以有效提升服务器性能。

方法

按照如下参数修改数据库参数,默认配置文件路径为“/pgsql/postgresql.conf”,请根据实际情况修改。

listen_addresses = '*'
bgwriter_delay = 10ms
bgwriter_lru_maxpages = 800
max_wal_size = 20GB
min_wal_size = 1GB
checkpoint_completion_target = 0.9
max_connections = 4096
checkpoint_timeout = 60min
full_page_writes = off
max_files_per_process = 100000
max_prepared_transactions = 2048
shared_buffers = 150GB
wal_buffers = 1GB
work_mem = 1GB
log_min_messages = FATAL
synchronous_commit = on
fsync = on
maintenance_work_mem = 2GB
vacuum_cost_limit = 10000
autovacuum = on
autovacuum_max_workers = 5
autovacuum_naptime = 20s
autovacuum_vacuum_scale_factor = 0.002
autovacuum_analyze_scale_factor = 0.001
表1 数据库调优参数

参数名称

参数含义

优化建议

max_connections

允许客户端的最大并发连接数目。

可根据实际情况设置。

bgwriter_delay

后台写数据库进程的睡眠时间。

设置为最小10ms。

bgwriter_lru_maxpages

后台写数据库进程每次写脏数据块时,写到外部文件中的脏数据块的最大个数。

-

max_wal_size

最大WAL x_log文件大小。

设置稍大以免频繁checkpoint。

checkpoint_completion_target

表示checkpoint的完成时间要在两个checkpoint间隔时间的N%内完成。

设置长一点,避免对性能测试的影响。

checkpoint_timeout

检查点周期。

-

full_page_writes

在checkpoint之后在对页面的第一次写时将整个页面写到wal里面。

将“full_page_writes”设置为off时,表示仅将页面的修改部分写入磁盘,可以提高性能,但在系统崩溃时可能会增加数据损坏的风险。

在生产环境中,建议设置为on。

shared_buffers

可以被PostgreSQL用于缓存数据的内存大小。

建议不超过物理内存60%,可根据实际情况调整。

wal_buffers

日志缓存区的大小。

-

work_mem

数据库的排序操作和哈希表使用的内存缓冲区的大小。

-

log_min_messages

控制写到数据库日志文件中的消息的级别。

-

fsync

数据同步更新到磁盘。

默认打开,关闭会影响数据可靠性。

synchronous_commit

同步提交日志。

默认打开,关闭会影响数据可靠性。

maintenance_work_mem

数据库的维护操作使用的内存空间的大小,如VACUUM、CREATE INDEX和ALTER TABLE ADD FOREIGN KEY等。

-

autovacuum_max_workers

设置系统自动清理工作进程的最大数量。

-

autovacuum_naptime

设置两次系统自动清理操作之间的间隔时间。

-