From 7baba7111bffbf3dafc41c66d7cc138526294f53 Mon Sep 17 00:00:00 2001 From: Seth Flynn Date: Thu, 6 Feb 2025 21:01:11 -0500 Subject: modules: better tune `nix.gc` settings --- modules/nixos/profiles/server.nix | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) (limited to 'modules/nixos/profiles') diff --git a/modules/nixos/profiles/server.nix b/modules/nixos/profiles/server.nix index a4eae44..fe369ef 100644 --- a/modules/nixos/profiles/server.nix +++ b/modules/nixos/profiles/server.nix @@ -6,6 +6,11 @@ }: let cfg = config.profiles.server; + + # 2^30 + # Why doesn't nix have a `pow`??? + gb = 1024 * 1024 * 1024; + minimumStorageKb = 15 * gb; in { options.profiles.server = { @@ -35,9 +40,12 @@ in }; nix.gc = { - # Every ~2 days - dates = "Mon,Wed,Fri *-*-* 00:00:00"; - options = "-d --delete-older-than 2d"; + dates = "*:0/30"; # Every 30 minutes + # GC to stay above minimumStorageBytes + options = toString [ + "--delete-older-than 5d" + "--max-freed \"$((${toString minimumStorageKb} - 1024 * $(df -k --output=avail /nix/store | tail -n 1)))\"" + ]; }; traits = { -- cgit v1.2.3