| @@ -49,5 +49,4 @@ text | |||
| 49 | 49 | boot.kernelPackages = pkgs.linuxPackages_latest; # Свежий kernel | |
| 50 | 50 | boot.kernelParams = [ "mitigations=off" "noibrs" "nopti" ]; # +10-20% perf, но менее безопасно [web:24] | |
| 51 | 51 | Протестируйте с sysbench или вашим wrk/locust. Перестройте: nixos-rebuild switch, мониторьте Prometheus. | |
| 52 | - | | |
| 53 | - | ||
| 52 | + | | |
aquafire / nixos_optimization.txt
Last active 6 months ago
aquafire revised this gist 8 months ago · cc6e5dd
1 file changed, 1 insertion, 2 deletions
aquafire revised this gist 8 months ago · 13d4f52
1 file changed, 53 insertions
| @@ -0,0 +1,53 @@ | |||
| 1 | + | Ваш файл уже охватывает ключевые daemon'ы для производительности. Для дальнейшей оптимизации добавьте настройки ядра, управление памятью и отключение ненужного — это ускорит сеть, I/O и работу с Kubernetes/async-задачами. | |
| 2 | + | ||
| 3 | + | Дополнительные сервисы | |
| 4 | + | zramSwap: Сжатый swap в RAM (быстрее диска, меньше износа SSD). Идеально для dev-машин с ограниченной памятью. | |
| 5 | + | ||
| 6 | + | text | |
| 7 | + | zramSwap = { | |
| 8 | + | enable = true; | |
| 9 | + | algorithm = "zstd"; # Лучшее сжатие/скорость [][] | |
| 10 | + | memoryPercent = 25; # 25% от RAM | |
| 11 | + | }; | |
| 12 | + | earlyoom: Ранний OOM-killer, предотвращает зависания при нехватке памяти (полезно для load-testing с locust/wrk). | |
| 13 | + | ||
| 14 | + | text | |
| 15 | + | services.earlyoom = { | |
| 16 | + | enable = true; | |
| 17 | + | freeMemThreshold = 5; # Действовать при <5% свободной RAM | |
| 18 | + | }; [][] | |
| 19 | + | Sysctl для сети/ядра | |
| 20 | + | Увеличьте буферы TCP для высоких нагрузок (FastAPI, K8s API): | |
| 21 | + | ||
| 22 | + | text | |
| 23 | + | boot.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 | + | ||
| 34 | + | text | |
| 35 | + | services = { | |
| 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 | + | }; | |
| 41 | + | environment.etc."sysctl.d/20-performance.conf".text = '' | |
| 42 | + | kernel.nmi_watchdog = 0; # Меньше overhead на multicore | |
| 43 | + | ''; | |
| 44 | + | [web:28] | |
| 45 | + | CPU/ядро tuning | |
| 46 | + | Для Rust/Go оптимизаций: | |
| 47 | + | ||
| 48 | + | text | |
| 49 | + | boot.kernelPackages = pkgs.linuxPackages_latest; # Свежий kernel | |
| 50 | + | boot.kernelParams = [ "mitigations=off" "noibrs" "nopti" ]; # +10-20% perf, но менее безопасно [web:24] | |
| 51 | + | Протестируйте с sysbench или вашим wrk/locust. Перестройте: nixos-rebuild switch, мониторьте Prometheus. | |
| 52 | + | | |
| 53 | + | ||