Puncte:0

Când să faceți upgrade RAM pe baza ieșirii libere

drapel cn

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:

  1. În cazul în care disponibilul este aproape de 0, va ajunge într-o blocare a sistemului?
  2. Înseamnă că trebuie să actualizez memoria RAM când memoria disponibilă scade?
  3. Pe ce bază ar trebui alocată/mărită memoria RAM?
  4. Avem recomandări/ghiduri oficiale care trebuie urmate pentru alocarea memoriei RAM?
Nikita Kipriyanov avatar
drapel za
Unde vedeți „memorie disponibilă mai mică de zero”?
drapel br
Ai repornit recent? uneori, aplicațiile vor continua să folosească memoria, dar dacă reporniți, de multe ori revin la o utilizare mai mică.
Michael Hampton avatar
drapel cz
Java în mod implicit nu eliberează memorie heap către sistemul de operare în majoritatea cazurilor, chiar dacă nu o mai folosește. Înainte de a cumpăra mai multă memorie RAM, profilați aplicația pentru a vedea câtă memorie folosește cu adevărat.
ragul rangarajan avatar
drapel cn
@NikitaKipriyanov s-a referit în acest articol https://www.linuxatemyram.com/ în secțiunea „Când ar trebui să încep să-mi fac griji?”
ragul rangarajan avatar
drapel cn
@Chopper3 Nu a fost efectuată nicio repornire. Am observat că punctul tău de memorie scade la repornire și continuă să crească în zilele următoare. Dacă aplicația trebuie să își servească scopul pentru un client, repornirea acesteia va duce la o întrerupere care nu va fi cazul potrivit, nu?
ragul rangarajan avatar
drapel cn
Profilul @MichaelHampton Hope al aplicației înseamnă alocarea maximă a heap-ului pentru aplicație, care este configurată ca 50% din RAM (6 GB).
Puncte:1
drapel cn

Pot obține un răspuns la una dintre întrebările mele

În cazul în care disponibilul este aproape de 0, va ajunge într-o blocare a sistemului?

La testare pe unul dintre serverele mele, unde am încărcat memoria aproape plină ca mai jos

sys> gratuit -h
              total folosit gratuit partajat buff/cache disponibil
Mem: 11G 11G 135M 25M 187M 45M
Schimbați: 0B 0B 0B

Capacitatea de a vedea singura aplicația mea (care a consumat mai multă memorie) a fost ucisă de ucigașul Out of memory, care poate fi menționat în jurnalele kernelului

dmesg -e

[355623.918401] [21805] 553000 21805 69 21 2 0 0 rm
[355623.921381] Memorie epuizată: uciderea procesului 11465 (java) scor 205 sau sacrificarea copilului
[355623.925379] Proces oprit 11465 (java), UID 553000, total-vm:6372028kB, anon-rss:2485580kB, fișier-rss:0kB, shmem-rss:0kB

https://www.kernel.org/doc/gorman/html/understand/understand016.html

Out Of Memory Killer sau OOM Killer este un proces pe care kernel-ul Linux îl folosește atunci când sistemul are o memorie extrem de scăzută. Această situație apare deoarece nucleul Linux a supraalocat memorie proceselor sale. ... Aceasta înseamnă că procesele care rulează necesită mai multă memorie decât este disponibilă fizic.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.