fixed stuff
This commit is contained in:
parent
f9413c476c
commit
2482644028
58 changed files with 296 additions and 339 deletions
|
|
@ -1,21 +1,12 @@
|
|||
{ ... }:
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
{
|
||||
# ─────────────────────────────────────────────────────────────
|
||||
# Machine à faible RAM (4 GiB) : on privilégie TOUJOURS les
|
||||
# binaires pré-compilés (caches) plutôt que la compilation locale.
|
||||
# ─────────────────────────────────────────────────────────────
|
||||
# privilège pour les paquets précompilés pour que la RAM ne soit pas trop sollicitée
|
||||
nix.settings = {
|
||||
experimental-features = [
|
||||
"nix-command"
|
||||
"flakes"
|
||||
];
|
||||
# Caches binaires : on récupère un maximum de paquets déjà
|
||||
# compilés pour éviter de compiler sur cette machine.
|
||||
# Caches binaires
|
||||
substituters = [
|
||||
"https://cache.nixos.org"
|
||||
"https://hyprland.cachix.org"
|
||||
|
|
@ -35,38 +26,31 @@
|
|||
"root"
|
||||
"@wheel"
|
||||
];
|
||||
# Toujours interroger les caches, ne jamais partir du principe
|
||||
# qu'un paquet doit être compilé localement.
|
||||
# utiliser les caches par défaut
|
||||
builders-use-substitutes = true;
|
||||
fallback = true; # si un cache tombe, on tente ailleurs
|
||||
connect-timeout = 10;
|
||||
# Limiter la pression mémoire pendant la construction :
|
||||
# peu de jobs en parallèle, sinon 4 Gio saturent vite.
|
||||
# limitation de l'utilisation de la RAM
|
||||
max-jobs = 1; # une dérivation à la fois
|
||||
cores = 2; # les 2 cœurs du i5-6200U par job
|
||||
cores = 2; # les 2 coeurs du i5-6200U par job
|
||||
};
|
||||
# Auto-optimisation du store (déduplication) pour économiser le disque.
|
||||
# optimisation du store
|
||||
nix.settings.auto-optimise-store = true;
|
||||
# ─────────────────────────────────────────────────────────────
|
||||
# zram : swap compressé en RAM. Indispensable avec 4 Gio, à la
|
||||
# fois pour l'usage courant et pour absorber les pics du rebuild.
|
||||
# ─────────────────────────────────────────────────────────────
|
||||
# zram : compression du swap en RAM pour absorber les pics du rebuild
|
||||
zramSwap = {
|
||||
enable = true;
|
||||
algorithm = "zstd";
|
||||
memoryPercent = 150; # jusqu'à 1.5x la RAM (zstd compresse ~3:1)
|
||||
memoryPercent = 150;
|
||||
priority = 100;
|
||||
};
|
||||
# Le noyau peut « swaper » agressivement vers zram (rapide) plutôt
|
||||
# que de tuer des process pendant un build.
|
||||
# swap du noyau si nécessaire
|
||||
boot.kernel.sysctl = {
|
||||
"vm.swappiness" = 180; # favorise zram
|
||||
"vm.swappiness" = 180;
|
||||
"vm.watermark_boost_factor" = 0;
|
||||
"vm.watermark_scale_factor" = 125;
|
||||
"vm.page-cluster" = 0; # recommandé avec zram
|
||||
"vm.page-cluster" = 0;
|
||||
};
|
||||
# earlyoom : tue proprement le process le plus gourmand avant que la
|
||||
# machine ne se fige totalement (utile si un build déborde malgré tout).
|
||||
# empêche la machine de freeze totalement si un process est trop gourmand
|
||||
services.earlyoom = {
|
||||
enable = true;
|
||||
freeMemThreshold = 5; # agit quand il reste < 5% de RAM libre
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue