Limit journal size

This commit is contained in:
ItsDrike 2024-04-15 21:20:19 +02:00
parent 0a9742429d
commit 7a17948e90
Signed by: ItsDrike
GPG key ID: FA2745890B7048C0
3 changed files with 46 additions and 0 deletions

View file

@ -5,5 +5,7 @@ _: {
./logrotate.nix ./logrotate.nix
./oomd.nix ./oomd.nix
./thermald.nix ./thermald.nix
./journald.nix
./fstrim.nix
]; ];
} }

View file

@ -0,0 +1,35 @@
{ config, lib, ... }: let
inherit (lib.modules) mkIf;
in {
# if lvm is enabled, then tell it to issue discards
# (this is good for SSDs and has almost no downsides on HDDs, so
# it's a good idea to enable it unconditionally)
environment.etc."lvm/lvm.conf".text = mkIf config.services.lvm.enable ''
devices {
issue_discards = 1
}
'';
# discard blocks that are not in use by the filesystem, good for SSDs
services.fstrim = {
# we may enable this unconditionally across all systems becuase it's performance
# impact is negligible on systems without a SSD - which means it's a no-op with
# almost no downsides aside from the service firing once per week
enable = true;
# the default value, good enough for average-load systems
interval = "weekly";
};
# tweak fstim service to run only when on AC power
# and to be nice to other processes
# (this is a good idea for any service that runs periodically)
systemd.services.fstrim = {
unitConfig.ConditionACPower = true;
serviceConfig = {
Nice = 19;
IOSchedulingClass = "idle";
};
};
}

View file

@ -0,0 +1,9 @@
{
# Limit systemd journal size, as the default is unlimited and
# journals get big really fast
services.journald.extraConfig = ''
SystemMaxUse=100M
RuntimeMaxUse=50M
SystemMaxFileSize=50M
'';
}