aquafire / nixos_optimization.txt

Last active 6 months ago

Like 0

aquafire revised this gist 8 months ago · cc6e5dd

1 file changed, 1 insertion, 2 deletions

nixos_optimization.txt
@@ -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 revised this gist 8 months ago · 13d4f52

1 file changed, 53 insertions

nixos_optimization.txt (file created)
@@ -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 +