aquafire / nixos_optimization.txt

Last active 6 months ago

Like 0

Revision cc6e5dd4197640ee27b9ad3bc56dadefd14827d2

nixos_optimization.txt Raw
1Ваш файл уже охватывает ключевые daemon'ы для производительности. Для дальнейшей оптимизации добавьте настройки ядра, управление памятью и отключение ненужного — это ускорит сеть, I/O и работу с Kubernetes/async-задачами.
2
3Дополнительные сервисы
4zramSwap: Сжатый swap в RAM (быстрее диска, меньше износа SSD). Идеально для dev-машин с ограниченной памятью.
5
6text
7zramSwap = {
8 enable = true;
9 algorithm = "zstd"; # Лучшее сжатие/скорость [][]
10 memoryPercent = 25; # 25% от RAM
11};
12earlyoom: Ранний OOM-killer, предотвращает зависания при нехватке памяти (полезно для load-testing с locust/wrk).
13
14text
15services.earlyoom = {
16 enable = true;
17 freeMemThreshold = 5; # Действовать при <5% свободной RAM
18}; [][]
19Sysctl для сети/ядра
20Увеличьте буферы TCP для высоких нагрузок (FastAPI, K8s API):
21
22text
23boot.kernel.sysctl = {
24 "net.core.rmem_max" = 16777216;
25 "net.core.wmem_max" = 16777216;
26 "net.ipv4.tcp_rmem" = "4096 65536 16777216";
27 "net.ipv4.tcp_wmem" = "4096 65536 16777216";
28 "vm.swappiness" = 10; # Меньше свопинга
29 "kernel.sched_autogroup_enabled" = 0; # Лучше для async [web:19][web:20]
30};
31Отключение ненужного
32Сократите overhead:
33
34text
35services = {
36 printing.enable = lib.mkForce false; # cups
37 geoclue2.enable = false; # Геолокация
38 fwupd.enable = false; # Firmware updates
39 gnome.gnome-keyring.enable = lib.mkForce false; # Если не GNOME
40};
41environment.etc."sysctl.d/20-performance.conf".text = ''
42 kernel.nmi_watchdog = 0; # Меньше overhead на multicore
43'';
44[web:28]
45CPU/ядро tuning
46Для Rust/Go оптимизаций:
47
48text
49boot.kernelPackages = pkgs.linuxPackages_latest; # Свежий kernel
50boot.kernelParams = [ "mitigations=off" "noibrs" "nopti" ]; # +10-20% perf, но менее безопасно [web:24]
51Протестируйте с sysbench или вашим wrk/locust. Перестройте: nixos-rebuild switch, мониторьте Prometheus.
52​