@@ -404,37 +404,37 @@ unix_socket_directories = '.'
404404tcp_keepalives_idle = 60
405405tcp_keepalives_interval = 10
406406tcp_keepalives_count = 10
407- shared_buffers = 128GB
408- maintenance_work_mem = 4GB
407+ shared_buffers = 128GB # 1/4 主机内存
408+ maintenance_work_mem = 2GB # min( 2G, (1/4 主机内存)/autovacuum_max_workers )
409409dynamic_shared_memory_type = posix
410410vacuum_cost_delay = 0
411411bgwriter_delay = 10ms
412412bgwriter_lru_maxpages = 1000
413413bgwriter_lru_multiplier = 10.0
414- bgwriter_flush_after = 0 # IO很好的机器,不需要考虑平滑调度
414+ bgwriter_flush_after = 0 # IO很好的机器,不需要考虑平滑调度
415415max_worker_processes = 128
416- max_parallel_workers_per_gather = 0 # 如果需要使用并行查询,设置为大于1
416+ max_parallel_workers_per_gather = 0 # 如果需要使用并行查询,设置为大于1 ,不建议超过 主机cores-2
417417old_snapshot_threshold = -1
418418backend_flush_after = 0 # IO很好的机器,不需要考虑平滑调度, 否则建议128~256kB
419419wal_level = replica
420420synchronous_commit = off
421- full_page_writes = on
422- wal_buffers = 1GB
421+ full_page_writes = on # 支持原子写超过BLOCK_SIZE的块设备,在对齐后可以关闭。或者支持cow的文件系统可以关闭。
422+ wal_buffers = 1GB # min( 2047MB, shared_buffers/32 ) = 512MB
423423wal_writer_delay = 10ms
424424wal_writer_flush_after = 0 # IO很好的机器,不需要考虑平滑调度, 否则建议128~256kB
425- checkpoint_timeout = 30min # 不建议频繁做检查点,否则XLOG会产生很多的FULL PAGE WRITE。
426- max_wal_size = 256GB # 建议是SHARED BUFFER的2倍
427- min_wal_size = 64GB
428- checkpoint_completion_target = 0.05 # 硬盘好的情况下,可以让检查点快速结束,恢复时也可以快速达到一致状态。否则建议0.5~0.9
429- checkpoint_flush_after = 0 # IO很好的机器,不需要考虑平滑调度, 否则建议128~256kB
425+ checkpoint_timeout = 30min # 不建议频繁做检查点,否则XLOG会产生很多的FULL PAGE WRITE(when full_page_writes=on) 。
426+ max_wal_size = 256GB # 建议是SHARED BUFFER的2倍
427+ min_wal_size = 64GB # max_wal_size/4
428+ checkpoint_completion_target = 0.05 # 硬盘好的情况下,可以让检查点快速结束,恢复时也可以快速达到一致状态。否则建议0.5~0.9
429+ checkpoint_flush_after = 0 # IO很好的机器,不需要考虑平滑调度, 否则建议128~256kB
430430archive_mode = on
431431archive_command = '/bin/date' # 后期再修改,如 'test ! -f /disk1/digoal/arch/%f && cp %p /disk1/digoal/arch/%f'
432432max_wal_senders = 8
433433random_page_cost = 1.3 # IO很好的机器,不需要考虑离散和顺序扫描的成本差异
434434parallel_tuple_cost = 0
435435parallel_setup_cost = 0
436436min_parallel_relation_size = 0
437- effective_cache_size = 300GB # 看着办,剩下的都是OS可用的CACHE。
437+ effective_cache_size = 300GB # 看着办,扣掉会话连接RSS,shared buffer, autovacuum worker, 剩下的都是OS可用的CACHE。
438438force_parallel_mode = off
439439log_destination = 'csvlog'
440440logging_collector = on
@@ -445,13 +445,13 @@ log_disconnections = on
445445log_error_verbosity = verbose
446446log_timezone = 'PRC'
447447vacuum_defer_cleanup_age = 0
448- hot_standby_feedback = off # 建议关闭,以免备库长事务导致 主库无法回收垃圾而膨胀。
448+ hot_standby_feedback = off # 建议关闭,以免备库长事务导致 主库无法回收垃圾而膨胀。
449449max_standby_archive_delay = 300s
450450max_standby_streaming_delay = 300s
451451autovacuum = on
452452log_autovacuum_min_duration = 0
453- autovacuum_max_workers = 16 # CPU核多,并且IO好的情况下,可多点,但是注意16*autovacuum mem,会消耗较多内存,所以内存也要有基础。
454- autovacuum_naptime = 45s # 建议不要太高频率,否则会因为vacuum产生较多的XLOG。
453+ autovacuum_max_workers = 16 # CPU核多,并且IO好的情况下,可多点,但是注意16*autovacuum mem,会消耗较多内存,所以内存也要有基础。
454+ autovacuum_naptime = 45s # 建议不要太高频率,否则会因为vacuum产生较多的XLOG。
455455autovacuum_vacuum_scale_factor = 0.1
456456autovacuum_analyze_scale_factor = 0.1
457457autovacuum_freeze_max_age = 1600000000
0 commit comments