diff --git a/flake.nix b/flake.nix index 9c502f9..84a5f86 100644 --- a/flake.nix +++ b/flake.nix @@ -197,6 +197,7 @@ inputs.pvv-calendar-bot.nixosModules.default inputs.minecraft-heatmap.nixosModules.default self.nixosModules.gickup + self.nixosModules.hugepages self.nixosModules.matrix-ooye ]; overlays = [ diff --git a/hosts/bicep/services/postgresql/default.nix b/hosts/bicep/services/postgresql/default.nix index d4e31b7..2c08d99 100644 --- a/hosts/bicep/services/postgresql/default.nix +++ b/hosts/bicep/services/postgresql/default.nix @@ -1,6 +1,8 @@ { config, lib, pkgs, values, ... }: let cfg = config.services.postgresql; + + sharedBuffersMB = 8192; in { imports = [ @@ -29,7 +31,7 @@ in superuser_reserved_connections = 3; # Memory Settings - shared_buffers = "8192 MB"; + shared_buffers = "${toString sharedBuffersMB} MB"; work_mem = "32 MB"; maintenance_work_mem = "420 MB"; effective_cache_size = "22 GB"; @@ -93,6 +95,10 @@ in }; }; + boot.kernel.hugepages.reservations.postgresql = lib.mkIf cfg.enable ( + builtins.ceil (sharedBuffersMB / config.boot.hugepages.size) + ); + systemd.tmpfiles.settings."10-postgresql"."/data/postgresql".d = lib.mkIf cfg.enable { user = config.systemd.services.postgresql.serviceConfig.User; group = config.systemd.services.postgresql.serviceConfig.Group;