mirror of
https://github.com/ItsDrike/nixdots
synced 2024-11-10 06:59:41 +00:00
36 lines
1.1 KiB
Nix
36 lines
1.1 KiB
Nix
|
{ 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";
|
||
|
};
|
||
|
};
|
||
|
}
|