machines/bc01n05: postgres tuning
Change-Id: I30925a84216b45bde9e92b67b007f15b2cdf58e8
Reviewed-on: https://gerrit.hackerspace.pl/c/hscloud/+/1481
Reviewed-by: q3k <q3k@hackerspace.pl>
diff --git a/cluster/machines/bc01n05.hswaw.net.nix b/cluster/machines/bc01n05.hswaw.net.nix
index 84819f6..d2b4da0 100644
--- a/cluster/machines/bc01n05.hswaw.net.nix
+++ b/cluster/machines/bc01n05.hswaw.net.nix
@@ -1,14 +1,16 @@
{ config, pkgs, lib, ... }:
with builtins;
-let postgresPkg = pkgs.postgresql_14;
+let
+ postgresPkg = pkgs.postgresql_14;
+ numCPUs = 16;
in rec {
networking.hostName = "bc01n05";
# TODO: undefine fqdn and define domain after big nix change
hscloud.base.fqdn = "${networking.hostName}.hswaw.net";
#networking.domain = "hswaw.net";
system.stateVersion = "22.05";
- nix.maxJobs = 16;
+ nix.maxJobs = numCPUs;
### zfs
# randomly generated
@@ -53,6 +55,24 @@
package = postgresPkg;
enableTCPIP = true;
initdbArgs = ["--encoding='UTF8'" "--lc-collate='C'" "--lc-ctype='C'"];
+ settings = {
+ max_connections = 300;
+ shared_buffers = "4GB";
+ temp_buffers = "64MB";
+ work_mem = "64MB";
+ maintenance_work_mem = "258MB";
+ effective_io_concurrency = 10; # ssd, guess
+ maintenance_io_concurrency = 100; # ssd, guess
+ max_worker_processes = numCPUs;
+ max_parallel_workers = numCPUs;
+ max_parallel_maintenance_workers = 4;
+ wal_level = "logical";
+ wal_sync_method = "fsync"; # slightly faster (per pg_test_fsync) AND safer
+ full_page_writes = "off"; # partial writes impossible on zfs
+ wal_init_zero = "off"; # useless on CoW
+ wal_recycle = "off"; # same
+ random_page_cost = 2.0; # ssd, TODO maybe even lower?
+ };
ensureDatabases = ["synapse" "mediarepo"];
ensureUsers = [
{