diff options
| author | Seth Flynn <[email protected]> | 2025-02-06 21:01:11 -0500 |
|---|---|---|
| committer | Seth Flynn <[email protected]> | 2025-02-07 22:51:57 -0500 |
| commit | 7baba7111bffbf3dafc41c66d7cc138526294f53 (patch) | |
| tree | cf202cf9c7c02af8ad11a91dfd315709504add3f /modules/nixos/profiles/server.nix | |
| parent | 9f4ec84e3d7f95bfc3b3305541b098423278e389 (diff) | |
modules: better tune `nix.gc` settings
Diffstat (limited to 'modules/nixos/profiles/server.nix')
| -rw-r--r-- | modules/nixos/profiles/server.nix | 14 |
1 files changed, 11 insertions, 3 deletions
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 = { |
