Un proces care are 20 GB RSS nu folosește neapărat activ 20 GB. O parte poate fi accesată constant, iar alta poate rămâne neatinsă minute întregi. Reclamarea tradițională intervine pe măsură ce presiunea de memorie crește; DAMON poate observa pattern-ul real de acces, iar DAMOS — DAMON-based Operation Schemes — poate aplica automat o acțiune doar regiunilor care se încadrează în criteriile definite.
Pentru reclamare, acțiunea relevantă este pageout: kernelul încearcă să recupereze paginile regiunilor selectate. DAMOS suportă și limite de timp/dimensiune, prioritizare, filtre și watermarks tocmai pentru a evita o politică prea agresivă.
Verifică suportul înainte să modifici memoria
Începe cu:
uname -r
grep '^CONFIG_DAMON' /boot/config-"$(uname -r)"
Pentru administrare prin sysfs ai nevoie de suport DAMON corespunzător, iar cea mai practică verificare este:
sudo damo report sysinfo
Versiunile actuale DAMO raportează explicit interfețele și funcțiile DAMON disponibile pe kernelul respectiv. Nu presupune că toate opțiunile există doar pentru că rulezi un kernel recent.
Identifică procesul:
PID="$(pgrep -n myapp)"
echo "$PID"
Măsoară înainte:
grep -E 'VmRSS|VmSwap' /proc/"$PID"/status
cat /proc/pressure/memory
Păstrează și un baseline de latență și throughput al aplicației.
Confirmă mai întâi că există memorie rece
Înainte să faci reclaim:
sudo damo start "$PID"
sudo damo report access --repeat
Caută regiuni mari cu frecvență foarte mică și age ridicat. DAMON modelează accesul pe baza dimensiunii regiunii, frecvenței accesărilor și vechimii pattern-ului; acestea sunt exact proprietățile pe care DAMOS le poate folosi ulterior pentru selecție.
Oprește monitorizarea:
sudo damo stop
Nu trece la pageout doar pentru că RSS-ul este mare. Trebuie să existe o coadă rece consistentă în mai multe ferestre de observare.
Aplică pageout numai memoriei care nu a fost accesată
Pentru un test controlat, politica oficială DAMO poate fi exprimată astfel:
sudo damo start \
--damos_access_rate 0 0 \
--damos_sz_region 4K max \
--damos_age 60s max \
--damos_action pageout \
--target_pid "$PID"
Comanda cere kernelului să caute regiuni de minimum 4 KiB care au avut rată de acces zero și și-au păstrat acest comportament cel puțin 60 de secunde, apoi să încerce reclamarea lor. Acest model este documentat direct de proiectul DAMO.
Verifică schema activă:
sudo damo report damon
Raportul actual include configurația DAMON, starea kdamond și statisticile DAMOS, inclusiv informații despre regiunile asupra cărora schema a încercat sau a reușit să aplice acțiunea.
Nu rula o schemă nelimitată în producție
DAMOS are quotas tocmai pentru situația în care găsește brusc gigabytes de memorie eligibilă. Kernelul poate limita atât timpul petrecut aplicând acțiunea, cât și numărul de bytes procesați într-un interval. Când quota nu permite procesarea tuturor regiunilor, pentru pageout sunt prioritizate regiunile mai reci.
Pentru a vedea opțiunile exacte suportate de versiunea DAMO instalată:
damo help damon_param_options -h
Nu copia flag-uri de quota din tutoriale vechi; DAMO a evoluat activ, inclusiv în 2026, iar opțiunile noi includ quota goals și algoritmi de auto-tuning.
Dacă vrei reclamare continuă la nivelul întregului sistem, verifică și DAMON_RECLAIM. Modulul oficial poate limita, de exemplu, reclamarea la 128 MiB pe secundă și 10 ms de procesare per interval în configurația implicită, iar quota_sz, quota_ms și quota_reset_interval_ms sunt configurabile.
Corelează reclamarea cu PSI
În timpul testului:
watch -n 1 cat /proc/pressure/memory
Urmărește și:
free -h
grep -E 'VmRSS|VmSwap' /proc/"$PID"/status
sudo damo report damon
Dacă RSS scade, dar memory full PSI și latența aplicației cresc puternic, politica este prea agresivă. Reclamarea proactivă trebuie să elibereze memoria rece înainte ca direct reclaim sau kswapd să producă spike-uri, nu să transforme paginile folosite în trafic repetat către swap. DAMON_RECLAIM poate chiar ajusta quota în funcție de system-wide some memory PSI.
La final:
sudo damo stop
DAMOS devine valoros când selecția este bazată pe acces real, nu pe presupunerea că „memoria mare este memorie inutilă”. Măsoară întâi, aplică pageout numai unei cozi evident reci, limitează agresivitatea și urmărește PSI plus latența aplicației înainte să automatizezi politica.
Surse folosite
Linux Kernel Documentation — DAMON Design și DAMOS: access patterns, quotas, prioritizare, filters și watermarks.
Linux Kernel Documentation — DAMON-based Reclamation și controlul reclamării prin quota și memory pressure.
Linux Kernel Documentation — DAMOS actions, PAGEOUT, quota goals și filters.
DAMO — documentația oficială pentru damo start, damo report damon și scheme pageout.

















































