🛒 Arduino, ESP32 və modullar
Meta-nın CRAM texnologiyası: Linux-da sıxılmış RAM, RAM kimi işləyir

Meta-nın CRAM texnologiyası: Linux-da sıxılmış RAM, RAM kimi işləyir

Meta mühəndisləri Linux üçün yeni CRAM sıxılmış yaddaş xidməti təqdim ediblər: swap istifadə etmədən RAM-da sıxılmış səhifələr və ZRAM-dan 452 dəfə yüksək oxuma performansı.

8 oktyabr 20262 dəq oxuma15 teqlər

Linux-da yaddaş sıxılması deyəndə ilk yada düşənlər zswap və ZRAM olur. Hər ikisi swap qatında işləyir: səhifə fault-u, blok qurğusuna giriş-çıxış, proqramla dekompressiya və s. Meta mühəndisi Gregory Price isə Linux Plumbers Conference 2024-də tam fərqli yanaşma təqdim edib – CRAM (Compressed RAM service).

CRAM nə edir?

CRAM ideyası sadə səslənir: “ZRAM kimidir, amma tamamilə RAM-da və swap-sız”. Praktikada isə bu, nüvənin mm/cram.c modulunda reallaşdırılan kifayət qədər mürəkkəb xidmətdir:

  • Sıxılmış yaddaş blok qurğusu kimi yox, xüsusi NUMA nodu kimi təqdim olunur
  • Səhifələr page table-də xəritələnmiş qalır, oxunuşda səhifə fault-u və proqram dekompressiyası olmur
  • Yaddaşa cacheline/byte səviyyəsində giriş mümkündür – RAM kimi, amma fiziki tutum daha kiçikdir
  • Kernelin mövcud mexanizmlərindən istifadə edir: KSM/COW, Clean Cache, Memory Ballooning, Memory Tiering, Free Page Reporting və s.

Benchmark nəticələrinə görə, oxunuşyönlü yüklərdə CRAM DRAM-a yaxın performans verir və ZRAM-dan təxminən 452× daha sürətli ola bilir (TAOBench, FIO testləri). Sıxılmış yaddaş RAM-da saxlanıldığı üçün əsas gecikmə yalnız hardware-offload kompressiya xərci olur.

Çətinliklər və “Chicken Bit”

Sıxılmanın dərəcəsi məlumatdan asılıdır: sıfırlarla dolu səhifə ilə artıq sıxılmış video tam fərqlidir. Kernel üçün sual yaranır: “Həqiqətən nə qədər məntiqi RAM var?” və “Nə vaxt tükənəcək?”. Bu, hələ tam həll olunmamış tədqiqat mövzusudur.

Bu riskləri azaltmaq üçün CRAM-də xüsusi “Chicken Bit” bayrağı var: sistemdə yazmalar CRAM-in imkanını aşmağa başlayanda, kernel bu biti aktiv edib CRAM-dən istifadənin genişlənməsini dayandıra bilir, beləliklə təqdimatda “poison storm” adlandırılan zəncirvari nasazlıqların qarşısı alınır.

Niyə embedded və maker dünyası üçün maraqlıdır?

ZRAM və zswap bu gün Steam Deck kimi məhdud resurslu Linux cihazlarında geniş istifadə olunur. CRAM ilkin olaraq böyük serverlər üçün nəzərdə tutulsa da, gələcəkdə:

  • Raspberry Pi, ARM SBC-lərdə RAM-dan daha səmərəli istifadə
  • IoT gateway-ləri, routerlərdə yüksək sıxılma ilə daha çox eyni vaxtlı iş yükü
  • RAM-ı az olan robotika və embedded layihələrdə performans artımı

mümkün ola bilər.

CRAM hələ rəsmi kernel hissəsi deyil, amma artıq işlək prototip, real page cache testləri və nüvə ilə sıx inteqrasiya konsepti var. Yaddaşın bahalı olduğu hər yerdə – xüsusən də maker layihələrində – bu cür texnologiyalar yaxın illərdə ciddi fərq yarada bilər.


Mənbə: Linux Plumbers Conference, Tom's Hardware