Sunt conștient de această întrebare https://stackoverflow.com/questions/41224738/how-to-calculate-system-memory-usage-from-proc-meminfo-like-htop
Răspunsul pare depășit în ceea ce privește utilizarea memoriei și această întrebare pare mai complexă.
htop cu siguranță acum nu calculează memoria totală prin MemTotal - MemFree
mai mult.
Acolo https://access.redhat.com/solutions/406773 Am găsit o soluție care să se potrivească. Potrivit acestuia, ar fi calculat prin MemTotal - MemFree - Buffere - Cache - Slab
dar asta duce la o utilizare prea mică a memoriei în comparație cu htop.
Utilizarea memoriei în htop pare a fi destul de legată ca liber -m
se arată în celulă Mem: folosit
Dar dacă creați un disc ram, lucrurile se schimbă foarte mult:
mkdir mnt
sudo mount -t tmpfs nici unul mnt
cd mnt
sudo dd if=/dev/urandom of=test bs=32M status=progress
Mai sus va crea un disc RAM cu dimensiunea de 50% din memoria instalată și va umple acest disc ram.
htop arata acum ceva mai mult de jumatate din RAM fizica folosita, in cazul de testare 3,82 GB din 7,44 GB folosit. in orice caz liber -m
arată încă doar 104 MB folosiți față de 102 MB înainte de a crea și de a umple discul RAM. Deci 104 MB folosit este cu siguranță greșit, deoarece jumătate din memoria fizică a sistemului nu mai poate fi disponibilă, deoarece este folosită de discul RAM.
În /proc/meminfo
dimensiunea discului RAM pare să fie inclusă în În cache
, deci pentru calcularea memoriei cache utilizate nu ar trebui să fie scăzută.
Deci, de ce free -m raportează o valoare atât de greșită a memoriei libere? În mod implicit, există diverse tmpf-uri pe distribuții precum Debian sau Ubuntu, ceea ce înseamnă că free -m oferă o impresie greșită de memorie liberă.
Calculul memoriei pentru htop pare destul de rezonabil. Deci, de unde poate fi calculată valoarea htop /proc/meminfo
?