Un proces poate avea 20 GB RSS, dar asta nu înseamnă că folosește activ toate cele 20 GB. Poate exista un working set de câteva sute de MB, în timp ce gigabytes întregi nu au fost accesate de minute. Pentru memory tiering, dimensionarea VM-urilor sau investigarea consumului de RAM, diferența dintre memorie alocată și memorie realmente accesată este esențială.
DAMON — Data Access MONitor — este subsistemul kernelului Linux construit tocmai pentru observarea eficientă a pattern-urilor de acces. În loc să urmărească permanent fiecare pagină, grupează pagini adiacente cu comportament similar în regiuni și le împarte sau unește adaptiv. Astfel, administratorul poate controla compromisul dintre precizie și overhead.
Verifică dacă sistemul suportă DAMON
Începe cu:
uname -r
grep '^CONFIG_DAMON' /boot/config-"$(uname -r)"
Kernelul trebuie construit cu opțiunile DAMON necesare. Documentația oficială recomandă verificarea configurațiilor CONFIG_DAMON_*, iar interfața sysfs necesită CONFIG_DAMON_SYSFS.
Pentru utilizare practică, instrumentul recomandat este DAMO — DAMON Operator. După instalarea sa din pachetul distribuției sau repository-ul oficial, verifică sistemul:
sudo damo report sysinfo
Comanda raportează versiunea kernelului și funcțiile DAMON efectiv disponibile. Este mai sigură decât presupunerea că un kernel „nou” suportă toate facilitățile, deoarece unele distribuții backportează selectiv funcții.
Monitorizează un proces existent
Pornește aplicația în mod normal, cu utilizatorul său real:
PID="$(pgrep -n myapp)"
echo "$PID"
Apoi activează monitorizarea:
sudo damo start "$PID"
Nu transmite programul direct către damo start pe un server real dacă nu este necesar. DAMO rulează comanda-target cu privilegii root în acel mod; proiectul recomandă atenție explicită asupra acestui comportament.
Pentru rezultate live:
sudo damo report access --repeat
Vei vedea regiuni precum:
addr 7.42 GiB
size 128 MiB
access 180 Hz
age 4.8 s
DAMON raportează adresa, dimensiunea, frecvența acceselor și age — perioada în care comportamentul respectiv s-a menținut. Sampling interval-ul controlează cât de des sunt verificate accesările, iar aggregation interval-ul stabilește fereastra în care acestea sunt însumate.
Găsește regiunile „fierbinți”
Pentru a pune primele regiunile accesate cel mai frecvent:
sudo damo report access \
--sort_regions_by access_rate \
--sort_regions_dsc
O regiune mare cu acces constant este un candidat pentru working set-ul aplicației. O regiune de numai câțiva MB cu acces foarte intens poate fi, de exemplu, un cache intern sau o structură de date centrală.
DAMO calculează și o valoare abstractă numită access temperature, bazată implicit pe frecvența și vechimea pattern-ului. Aceasta ajută la compararea regiunilor, dar nu trebuie interpretată ca temperatură hardware sau ca procent direct de utilizare.
Identifică memoria rece
Pentru regiunile cu acces foarte redus:
sudo damo report access \
--access_rate 0% 5% \
--sort_regions_by age \
--sort_regions_dsc
Mai util pentru dimensionarea memoriei este:
sudo damo report access \
--style recency-percentiles
Raportul arată cât timp a rămas inactivă memoria la diferite percentile.
Pentru cantitatea efectivă de RAM rece:
sudo damo report access \
--style recency-sz-hist
Poți observa, de exemplu, că o parte importantă din spațiul monitorizat nu a fost accesată de câteva minute. DAMO documentează acest raport și sub conceptul „cold-memory-tail”.
Creează un heatmap doar când ai nevoie de istoric
Pentru analiză offline:
sudo damo record -o damon.data "$PID"
Apoi:
sudo damo report heatmap \
--output memory-heatmap.png \
--draw_range hottest
Heatmap-ul folosește timpul pe axa X, adresele memoriei pe Y și frecvența acceselor ca intensitate. Poți vedea imediat dacă working set-ul se deplasează sau dacă anumite regiuni devin reci după inițializare.
Pentru monitorizare minim intruzivă, preferă însă snapshot-urile live. Documentația DAMO precizează că acestea nu necesită perf sau trace-cmd; înregistrarea completă poate folosi unul dintre aceste instrumente.
La final:
sudo damo stop
Nu activa automat acțiuni DAMOS precum pageout, migrate_cold sau lru_deprio doar fiindcă ai găsit memorie rece. DAMON poate executa astfel de operațiuni, dar monitorizarea și modificarea politicii de memorie sunt două etape diferite. Mai întâi măsoară, confirmă pattern-ul în timp și abia apoi testează optimizarea într-un mediu controlat.
Surse folosite
Linux Kernel Documentation — DAMON architecture, sampling și adaptive regions.
Linux Kernel Documentation — DAMON Administration Guide și sysfs interface.
DAMON Operator — documentația oficială DAMO, start, report access, recording și heatmaps.
Linux Kernel Documentation — DAMOS și operațiunile access-aware asupra memoriei.

















































