Am o aplicație java care rulează pe un server Linux cu memorie fizică (RAM) alocată ca 12 GB, unde aș vedea utilizarea normală pe o perioadă de timp, ca mai jos.
sys> gratuit -h
total folosit gratuit partajat buff/cache disponibil
Mem: 11G 7.8G 1.6G 9.0M 2.2G 3.5G
Schimbați: 0B 0B 0B
Recent, la creșterea încărcării aplicației, am putut vedea că utilizarea RAM este aproape plină, iar spațiul disponibil este foarte puțin, unde m-aș putea confrunta cu o oarecare lentoare, dar aplicația continuă să funcționeze bine.
sys> gratuit -h
total folosit gratuit partajat buff/cache disponibil
Mem: 11G 11G 134M 17M 411M 240M
Schimbați: 0B 0B 0B
sys> gratuit -h
total folosit gratuit partajat buff/cache disponibil
Mem: 11G 11G 145M 25M 373M 204M
Schimbați: 0B 0B 0B
m-am referit https://www.linuxatemyram.com/ unde a sugerat punctul de mai jos.
Semne de avertizare a unei situații reale de memorie scăzută pe care poate doriți să o examinați:
- memoria disponibilă (sau „liber + buffer-uri/cache”) este aproape de zero
- swap-ul folosit crește sau fluctuează.
- dmesg | grep oom-killer arată OutOfMemory-killer la locul de muncă
Din punctele de mai sus, nu văd nicio problemă OOM la nivel de aplicație și schimbul a fost, de asemenea, dezactivat. deci neglijând cele două puncte. Un punct care mă deranjează a fost memoria disponibilă este mai mică decât zero, unde am nevoie de o clarificare
Întrebări:
- În cazul în care disponibilul este aproape de 0, va ajunge într-o blocare a sistemului?
- Înseamnă că trebuie să actualizez memoria RAM când memoria disponibilă scade?
- Pe ce bază ar trebui alocată/mărită memoria RAM?
- Avem recomandări/ghiduri oficiale care trebuie urmate pentru alocarea memoriei RAM?