From 3b0887397af5e3b93cffcab3e59c6dedb1a0b7eb Mon Sep 17 00:00:00 2001 From: Bartosz Stebel Date: Sat, 18 Mar 2023 19:27:34 +0100 Subject: [PATCH] machines/bc01n05: postgres tuning Change-Id: I30925a84216b45bde9e92b67b007f15b2cdf58e8 Reviewed-on: https://gerrit.hackerspace.pl/c/hscloud/+/1481 Reviewed-by: q3k --- cluster/machines/bc01n05.hswaw.net.nix | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/cluster/machines/bc01n05.hswaw.net.nix b/cluster/machines/bc01n05.hswaw.net.nix index 84819f6b..d2b4da0a 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 @@ in rec { 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 = [ {