CachyOS i optymalizacja jądra Linux – co naprawdę daje „Cachy Sauce”?

CachyOS to jedna z najciekawszych dystrybucji Linuxa ostatnich lat. Projekt zdobył popularność głównie dzięki agresywnej optymalizacji wydajności – zarówno na poziomie pakietów użytkownika, jak i samego jądra systemu. Sercem całego projektu jest linux-cachyos – zmodyfikowane jądro Linux zawierające zestaw patchy, własnych konfiguracji i eksperymentalnych schedulerów CPU.

W tym artykule przeanalizujemy techniczne szczegóły optymalizacji CachyOS i wyjaśnimy, co faktycznie wpływa na wydajność systemu, responsywność desktopu i gaming.
Źródła projektu oraz dokumentacja znajdują się tutaj:

Filozofia CachyOS

Klasyczne dystrybucje Linuxa kompilują pakiety dla maksymalnej kompatybilności – zwykle dla architektury x86-64-v1. Oznacza to brak wykorzystania nowoczesnych instrukcji CPU dostępnych w procesorach Ryzen czy Intel Core 12/13/14 gen.

CachyOS robi odwrotnie:

  • optymalizuje pakiety pod nowoczesne CPU,
  • stosuje agresywne flagi kompilacji,
  • używa niestandardowych schedulerów,
  • eksperymentuje z sched-ext,
  • dodaje poprawki z innych projektów kernelowych,
  • stroi kernel głównie pod desktop, gaming i latency.

Projekt sam określa to jako „performance-first Linux”.

Optymalizacja kompilacji jądra

Jednym z najważniejszych elementów CachyOS jest sposób budowania kernela.

ThinLTO (Link Time Optimization)

Kernel CachyOS jest domyślnie budowany z użyciem LLVM/Clang oraz ThinLTO.

ThinLTO pozwala kompilatorowi analizować cały kernel jako jedną całość. Dzięki temu możliwe jest:

  • inline funkcji między modułami,
  • lepsze rozmieszczenie kodu,
  • redukcja branch misprediction,
  • mniejszy narzut wywołań funkcji.

W praktyce poprawia to:

  • responsywność desktopu,
  • wydajność syscalli,
  • throughput I/O,
  • gaming CPU-bound.

CachyOS używa głównie ThinLTO zamiast pełnego LTO, ponieważ:

  • jest szybsze podczas kompilacji,
  • wymaga mniej RAM,
  • daje podobne zyski wydajnościowe.

AutoFDO + Propeller

To najbardziej zaawansowana część optymalizacji CachyOS.

AutoFDO

AutoFDO (Automatic Feedback Directed Optimization) działa podobnie do klasycznego PGO, ale wykorzystuje profile wydajności zbierane z działającego kernela.

Kernel jest profilowany podczas rzeczywistego użycia systemu:

  • gaming,
  • desktop,
  • kompilacja,
  • I/O,
  • multitasking.

Następnie kompilator reorganizuje kod według rzeczywistych ścieżek wykonania.

Efekty:

  • lepsze locality cache,
  • mniej missów branch predictor,
  • szybsze hot pathy kernela.

Propeller

Google Propeller reorganizuje layout funkcji w binarce.

Nowoczesne CPU tracą ogrom czasu na:

  • I-cache misses,
  • instruction TLB misses,
  • błędne przewidywanie branchy.

Propeller minimalizuje te problemy przez fizyczne grupowanie często wykonywanych funkcji obok siebie w pamięci.

To szczególnie pomaga:

  • schedulerowi,
  • memory management,
  • syscallom,
  • sterownikom GPU,
  • networkingowi.

Scheduler CPU – najważniejszy element CachyOS

Linux scheduler ma gigantyczny wpływ na:

  • latency,
  • frametime,
  • responsywność GUI,
  • interaktywność systemu.

CachyOS eksperymentuje z kilkoma schedulerami.

EEVDF – obecny domyślny scheduler

Nowoczesne wersje CachyOS używają zmodyfikowanego scheduler’a EEVDF jako domyślnego rozwiązania.

EEVDF oznacza:

Earliest Eligible Virtual Deadline First

Scheduler stara się:

  • minimalizować latency,
  • szybciej reagować na interaktywne taski,
  • poprawiać fairness.

W przeciwieństwie do starszego CFS:

  • lepiej radzi sobie z burst workload,
  • szybciej wybudza taski desktopowe,
  • poprawia frametime stability.

To szczególnie ważne dla:

  • Wayland,
  • KDE Plasma,
  • GNOME,
  • gamingu,
  • audio realtime.

BORE Scheduler

BORE był wcześniej bardzo popularny w CachyOS.

BORE:

  • agresywnie premiuje taski interaktywne,
  • zmniejsza latency desktopu,
  • poprawia responsiveness podczas obciążenia CPU.

Problem:

  • czasami pogarsza throughput,
  • może powodować regresje w niektórych workloadach,
  • nie zawsze daje lepsze FPS.

Dlatego obecnie główny kernel CachyOS przeszedł bardziej w kierunku EEVDF + sched-ext.

sched-ext – scheduler w userspace

Jedna z najbardziej eksperymentalnych funkcji CachyOS.

sched-ext pozwala uruchamiać scheduler Linuxa jako program eBPF w userspace.
Oznacza to możliwość dynamicznej zmiany schedulerów bez rebootu systemu.

CachyOS wspiera między innymi:

  • scx_lavd
  • scx_rusty
  • bpfland
  • cosmos

Scheduler można zmieniać praktycznie „na żywo”.

To ogromna zmiana architektoniczna, ponieważ klasycznie scheduler był integralną częścią kernela.

Tickrate kernela – 1000 Hz

Domyślny kernel CachyOS działa z tickrate:

1000 Hz1000\ \mathrm{Hz}1000 Hz

Dla porównania:

  • większość distro desktopowych używa 250 Hz,
  • serwerowe często 100–300 Hz.

Wyższy tickrate:

  • zmniejsza latency,
  • poprawia responsiveness,
  • redukuje input lag.

Koszt:

  • większy overhead CPU,
  • wyższe zużycie energii.

Dlatego CachyOS oferuje także warianty:

  • 300 Hz,
  • 500 Hz,
  • 750 Hz,
  • 1000 Hz.

Preemption i low-latency

Kernel CachyOS używa agresywniejszego modelu preemption niż standardowy Linux.

To oznacza:

  • krótszy czas oczekiwania tasków,
  • lepszy audio latency,
  • płynniejszy desktop,
  • lepsze frametime’y w grach.

Dostępny jest także wariant:

  • linux-cachyos-rt-bore

czyli kernel realtime.

Realtime kernel:

  • redukuje jitter,
  • poprawia deterministyczność,
  • pomaga w audio production,
  • bywa używany w streamingu i low-latency gaming.

Zarządzanie pamięcią

CachyOS dodaje również poprawki memory management.

Zen-kernel tweaks

Projekt wykorzystuje część patchy z Zen Kernel:

  • tuning compaction,
  • watermark optimization,
  • poprawki reclaim,
  • lepsze zachowanie pod memory pressure.

Anti-thrashing patch

W dokumentacji wspomniany jest patch:

  • le9uo

Jego celem jest ograniczenie page thrashing:

  • sytuacji, gdy kernel nieustannie swapuje strony pamięci.

To poprawia:

  • stabilność frametime,
  • responsywność systemu pod obciążeniem,
  • działanie systemu przy małej ilości RAM.

Optymalizacje pod gaming

CachyOS jest wyraźnie strojony pod gaming Linuxowy.

Kernel zawiera:

  • patchset Steam Deck,
  • wsparcie ROG Ally,
  • tuning AMD P-State,
  • HDR,
  • poprawki AMDGPU,
  • gotowe moduły NVIDIA,
  • sched-ext.

W praktyce oznacza to:

  • niższy input lag,
  • bardziej stabilny frametime,
  • szybsze wybudzanie tasków renderujących,
  • lepsze wykorzystanie nowoczesnych CPU Ryzen.

Architektury CPU

CachyOS kompiluje kernel i pakiety pod:

  • x86-64-v3
  • x86-64-v4
  • znver4

Dzięki temu możliwe jest wykorzystanie:

  • AVX2,
  • BMI,
  • FMA,
  • nowych rozszerzeń SIMD.

Standardowe distro zwykle tego nie robią.

Efekt:

  • szybsza kompresja,
  • szybsze multimedia,
  • lepsza wydajność kryptografii,
  • wyższa wydajność desktopu.

Czy CachyOS naprawdę jest szybszy?

To zależy od workloadu.

Największe zyski zwykle widać w:

  • desktop responsiveness,
  • frametime consistency,
  • gaming CPU-bound,
  • kompilacji,
  • I/O-heavy workloadach.

Mniejsze:

  • w GPU-bound gaming,
  • lekkich zadaniach,
  • serwerach produkcyjnych.

W praktyce CachyOS daje bardziej „responsywne” odczucie systemu niż klasyczny Arch lub Ubuntu – głównie dzięki schedulerowi i low-latency tuningowi.

Jednocześnie część optymalizacji jest bardzo eksperymentalna:

  • sched-ext,
  • alternatywne schedulery,
  • agresywne flagi kompilacji.

Dlatego projekt mocno balansuje między:

  • wydajnością,
  • stabilnością,
  • kompatybilnością.

Podsumowanie

CachyOS to obecnie jeden z najbardziej ambitnych projektów optymalizacji Linux desktop.

Najważniejsze elementy:

  • ThinLTO,
  • AutoFDO,
  • Propeller,
  • EEVDF,
  • sched-ext,
  • tuning latency,
  • nowoczesne architektury CPU,
  • agresywna konfiguracja kernela.

Największa różnica względem klasycznych dystrybucji polega na tym, że CachyOS:

  • traktuje kernel jako element wydajnościowy,
  • eksperymentuje z schedulerami,
  • stroi system pod desktop i gaming,
  • wykorzystuje możliwości nowoczesnych CPU.

Dla entuzjastów Linuxa, benchmarków i low-latency desktopu jest to obecnie jeden z najciekawszych projektów w ekosystemie.

About the author

Autor "BIELI" to zapalony entuzjasta otwartego oprogramowania, który dzieli się swoją pasją na blogu poznajlinuxa.pl. Jego wpisy są skarbnicą wiedzy na temat Linuxa, programowania oraz najnowszych trendów w świecie technologii. Autor "BIELI" wierzy w siłę społeczności Open Source i zawsze stara się inspirować swoich czytelników do eksplorowania i eksperymentowania z kodem.