add postgres settings #87
| @@ -49,6 +49,105 @@ in | ||||
|           }; | ||||
|         } | ||||
|       ]; | ||||
|       # Thank you NotAShelf | ||||
|       # https://github.com/NotAShelf/nyx/blob/d407b4d6e5ab7f60350af61a3d73a62a5e9ac660/modules/core/roles/server/system/services/databases/postgresql.nix#L74 | ||||
|       # commented out statements are likely overriden by pgtune settings | ||||
|       # https://pgtune.leopard.in.ua/?dbVersion=17&osType=linux&dbType=web&cpuNum=64&totalMemory=8&totalMemoryUnit=GB&connectionNum=1024&hdType=hdd | ||||
|       settings = { | ||||
|         # Connectivity; | ||||
|         # max_connections = 100; | ||||
|         superuser_reserved_connections = 3; | ||||
|  | ||||
|         # Memory Settings; | ||||
|         #shared_buffers = "1024 MB"; | ||||
|         #work_mem = "32 MB"; | ||||
|         #maintenance_work_mem = "320 MB"; | ||||
|         #huge_pages = "off"; | ||||
|         #effective_cache_size = "2 GB"; | ||||
|         #effective_io_concurrency = 100; # concurrent IO only really activated if OS supports posix_fadvise function; | ||||
|         #random_page_cost = 1.25; # speed of random disk access relative to sequential access (1.0); | ||||
|  | ||||
|         # Monitoring; | ||||
|         shared_preload_libraries = "pg_stat_statements,auto_explain"; # per statement resource usage stats & log explain statements for slow queries | ||||
|         track_io_timing = "on"; # measure exact block IO times; | ||||
|         track_functions = "pl"; # track execution times of pl-language procedures if any; | ||||
|         # Replication; | ||||
|         wal_level = "replica"; # consider using at least "replica"; | ||||
|         max_wal_senders = 0; | ||||
|         synchronous_commit = "on"; | ||||
|  | ||||
|         # Checkpointing: ; | ||||
|         checkpoint_timeout = "15 min"; | ||||
|         #checkpoint_completion_target = 0.9; | ||||
|         #max_wal_size = "1024 MB"; | ||||
|         #min_wal_size = "512 MB"; | ||||
|  | ||||
|         # WAL writing; | ||||
|         wal_compression = "on"; | ||||
|         wal_buffers = -1; # auto-tuned by Postgres till maximum of segment size (16MB by default); | ||||
|         wal_writer_delay = "200ms"; | ||||
|         wal_writer_flush_after = "1MB"; | ||||
|  | ||||
|         # Background writer; | ||||
|         bgwriter_delay = "200ms"; | ||||
|         bgwriter_lru_maxpages = 100; | ||||
|         bgwriter_lru_multiplier = 2.0; | ||||
|         bgwriter_flush_after = 0; | ||||
|  | ||||
|         # Parallel queries: ; | ||||
|         #max_worker_processes = 6; | ||||
|         #max_parallel_workers_per_gather = 3; | ||||
|         #max_parallel_maintenance_workers = 3; | ||||
|         #max_parallel_workers = 6; | ||||
|         parallel_leader_participation = "on"; | ||||
|  | ||||
|         # Advanced features ; | ||||
|         enable_partitionwise_join = "on"; | ||||
|         enable_partitionwise_aggregate = "on"; | ||||
|         jit = "on"; | ||||
|  | ||||
|         jit_above_cost = 100000; | ||||
|         jit_inline_above_cost = 150000; | ||||
|         jit_optimize_above_cost = 500000; | ||||
|  | ||||
|         # log slow queries | ||||
|         log_min_duration_statement = 100; | ||||
|         "auto_explain.log_min_duration" = 100; | ||||
|  | ||||
|         # logging configuration | ||||
|         log_connections = true; | ||||
|         log_statement = "all"; | ||||
|         logging_collector = true; | ||||
|         log_disconnections = true; | ||||
|  | ||||
|         # from pgtune | ||||
|         # DB Version: 17 | ||||
|         # OS Type: linux | ||||
|         # DB Type: web | ||||
|         # Total Memory (RAM): 8 GB | ||||
|         # CPUs num: 64 | ||||
|         # Connections num: 1024 | ||||
|         # Data Storage: hdd | ||||
|  | ||||
|         max_connections = 1024; | ||||
|         shared_buffers = "2GB"; | ||||
|         effective_cache_size = "6GB"; | ||||
|         maintenance_work_mem = "512MB"; | ||||
|         checkpoint_completion_target = 0.9; | ||||
|         #wal_buffers = "16MB"; allow auto-tuning as per above | ||||
|         default_statistics_target = 100; | ||||
|         random_page_cost = 4; | ||||
|         effective_io_concurrency = 2; | ||||
|         work_mem = "512kB"; | ||||
|         huge_pages = "off"; | ||||
|         min_wal_size = "1GB"; | ||||
|         max_wal_size = "4GB"; | ||||
|         max_worker_processes = 64; | ||||
|         max_parallel_workers_per_gather = 4; | ||||
|         max_parallel_workers = 64; | ||||
|         max_parallel_maintenance_workers = 4; | ||||
|  | ||||
|       }; | ||||
|  | ||||
|       refreshCollation = true; | ||||
|       vacuumAnalyzeTimer.enable = true; | ||||
|   | ||||
		Reference in New Issue
	
	Block a user