Puncte:-1

Declanșează manual schimbul?

drapel pk

Mă joc cu ZFS pe Proxmox și am observat că schimbul nu pare să intervină niciodată. Valoarea schimbului este setată în prezent la 50, dar nu se schimbă niciodată decât dacă ajung la 100% utilizarea RAM, acționând ca și cum schimbul este setat la 0.

Cum pot forța manual schimbarea să ruleze? Singurul mod în care pot face acest lucru este instalând ceva de genul https://github.com/julman99/eatmemory să consume memoria sistemului de peste 100%

cat /proc/meminfo

MemTotal: 528099208 kB
MemFree: 33819676 kB
MemDisponibil: 30995036 kB
Buffere: 65056 kB
Memorate în cache: 368868 kB
Schimbat în cache: 4978016 kB
Activ: 383870632 kB
Inactiv: 71255296 kB
Activ(anon): 383654260 kB
Inactiv(anon): 71140760 kB
Activ(fișier): 216372 kB
Inactiv(fișier): 114536 kB
Inevitabil: 160824 kB
Mlocked: 160824 kB
Schimb total: 1875374420 kB
SchimbFree: 1576041808 kB
Murdar: 128 kB
Scriere inversă: 0 kB
AnonPagini: 450155280 kB
Cartografiat: 185764 kB
Shmem: 92400 kB
KRecuperabil: 1316628 kB
Placă: 7796824 kB
SRecuperabil: 1316628 kB
SUnreclaim: 6480196 kB
KernelStack: 49616 kB
PageTabele: 1746424 kB
NFS_Instabil: 0 kB
Bounce: 0 kB
WritebackTmp: 0 kB
CommitLimit: 2139350296 kB
Committed_AS: 1255929500 kB
VmallocTotal: 34359738367 kB
VmallocUtilizat: 6192420 kB
VmallocChunk: 0 kB
Percpu: 1302144 kB
Hardware corupt: 0 kB
AnonHugePagini: 176281600 kB
ShmemHugePagini: 0 kB
ShmemPmdMapped: 0 kB
FileHugePagini: 0 kB
FilePmdMapped: 0 kB
CmaTotal: 0 kB
CmaFree: 0 kB
HugePages_Total: 72
HugePages_Free: 72
HugePages_Rsvd: 0
HugePages_Surp: 0
Dimensiune mare a paginii: 2048 kB
Hugetlb: 147456 kB
DirectMap4k: 49376056 kB
DirectMap2M: 406616064 kB
DirectMap1G: 81788928 kB
Matthew Ife avatar
drapel jo
Bănuiesc că așteptările tale cu privire la ceea ce face schimbul nu sunt corecte. Ce vrei să obții?
djdomi avatar
drapel za
setați swapiness la 100, dar asigurați-vă că aveți ssd sau nvme ;) Linux nu folosește swap dacă are suficient ram, nu este Windows care folosește tot timpul fișierele de pagină
Toodarday avatar
drapel pk
@MatthewIfe Practic vreau să fie întotdeauna o anumită cantitate de RAM liberă. Aparatul meu are 256 GB RAM. Încerc să forțez memoria să schimbe paginile pentru a ajunge la asta, dar manual. Am încercat și ```vm.zone_reclaim_mode=1``` fără niciun ajutor.
Toodarday avatar
drapel pk
Unitatea @djdomi NVMe este dedicată schimbului.Acesta este un nod Proxmox care rulează mai multe mașini virtuale Linux/windows (KVM).
Toodarday avatar
drapel pk
Pentru a adăuga curentul sistemului meu, folosesc 230/256 GB de RAM fără nicio schimbare încă folosită.
djdomi avatar
drapel za
@toodardwy și care este problema cu care te confrunți? Fără angajament excesiv, niciun schimb folosit.
Matthew Ife avatar
drapel jo
Nu există niciun motiv să nu folosiți memoria dacă este liberă și nu oferiți un motiv pentru care ar trebui să fie liberă / pentru ce doriți să utilizați memoria.
Toodarday avatar
drapel pk
@MatthewIfe Motivul este dacă creez o altă mașină virtuală când memoria RAM este la 99%, nu se va porni. Trebuie să existe întotdeauna cel puțin 10% RAM liberă. Există o altă modalitate de a realiza acest lucru? Speram că va exista o comandă ușor de executat
Matthew Ife avatar
drapel jo
@Toodarday Vă rugăm să furnizați un exemplu `/proc/memfino` când sistemul utilizează toată memoria. Am impresia că vă uitați la paginile stocate în cache și, dacă este posibil, oferiți exemplul unui sistem care nu pornește din cauza memoriei pline.
Toodarday avatar
drapel pk
S-a adăugat o altă ieșire de noduri mai sus
Puncte:0
drapel cn

swappiness nu forțează utilizarea spațiului de swap. Nici nu te va scuti de a nu avea suficientă memorie.

Valori mai mari ale schimbul încurajează recuperarea paginilor anonime, nu doar cache-ul paginilor. Dar acest lucru nu face mare lucru pentru ZFS pe Linux, care nu folosește cache-ul paginii Linux.

Practic, vreau să existe întotdeauna o anumită cantitate de RAM liberă. ... La adaugă curentul meu de sistem folosește 230/256 GB de RAM fără nicio schimbare folosit încă. ... dacă creez o altă mașină virtuală când RAM-ul este la 99% nu va porni.

Faceți o planificare a capacității pentru a nu supraabona memoria. Mai puțin o comandă magică pentru a-i spune hipervizorului să păstreze memoria liberă și mai mult disciplina ta de a nu începe mai mulți oaspeți decât ai resurse pentru.

230/256 GB este utilizat în proporție de 90%, mult mai mult decât poate intra în presiunea memoriei, nu este bun pentru performanță. Ceea ce poate necesita limitarea memoriei oaspeților, 56 x 4 GB invitați, pentru a alcătui unele numere. Dacă cele două zeci de GB rămase sunt suficiente pentru a rula nucleul hypervisor și pentru a avea totuși o oarecare rezervă, este ceva pe care îl puteți descoperi în testare.

Editare: din meminfo, gazda dvs. de 500 GB este sub presiunea memoriei și se schimbă.

  • MemDisponibil la 5,8% din total este scăzut. 29 GB pentru a lucra pe o gazdă de 500 GB nu este foarte mult.
  • SwapTotal minus SwapFree arată 285 GB de utilizare a spațiului de swap. 1788 GB de schimb total înseamnă că nu se va epuiza în curând. Amintiți-vă că majoritatea stocării persistente este cu ordine de mărime mai lentă decât DRAM.
  • 0,4 GB în cache este destul de scăzut în cifre absolute. În concordanță cu utilizarea ZFS pe Linux, care nu utilizează cache-ul obișnuit al paginii Linux VFS.Ca rezultat, swappiness tunable nu face aproape nimic în acest mediu. Dacă aruncați cache-urile manual, nu faceți asta, probabil că dăunează performanței.

Schimbarea se face în seturi de pagini la un moment dat, când este necesar. Gazda nu va elibera brusc un întreg oaspete de 100 GB atunci când solicitările de memorie pentru oaspeți sunt mai mici. Asta ar fi foarte scump.

Sunt sceptic cu privire la supraabonarea memoriei în general și la balonarea în special și nu le recomand. Încurajarea memoriei scăzute poate fi riscantă pentru performanță, deoarece, în cel mai rău caz, revendicarea introduce latență și ar putea enerva criminalul OOM. Vedeți încercările dvs. de a porni oaspeții la o utilizare ridicată, după un anumit punct, nucleul nu va acorda alocările de memorie.

Confirmați că gazda are > 100 GB RAM (fără a lua în calcul schimbul) disponibil înainte de a începe un oaspete de 100 GB. Închideți oaspeții înainte de a le reduce dimensiunea memoriei. Neabonarea excesivă este mai costisitoare în ceea ce privește costurile de memorie, dar are performanțe mai consistente și este mai ușor de întreținut.

Toodarday avatar
drapel pk
Problema pe care o am este aceasta: https://i.gyazo.com/83a5033c9b74c8319227d804862f0976.png https://i.gyazo.com/cb1a8f56f44f39d0a3b0c7be54188a20.png. Această mașină virtuală se poate rezerva la fiecare oră, dar poți să rezervi această mașină virtuală în fiecare oră. RAM. Modul în care funcționează proxmox dacă învârt o mașină virtuală, o alocă 100 GB RAM, folosește-l toată revenirea sub 1 GB și aruncă cache-ul, în timp ce în GUI va afișa mai puțin de 1 GB RAM utilizat acum, sistemul va rezerva toți 100 GB până la alimentare jos. Trebuie să schimb asta. Balonul nu este o opțiune pentru mine.
John Mahowald avatar
drapel cn
Vezi editarea mea. Mă îndoiesc că memoria este ușor de recuperat, nu fără a opri oaspetele și a-i reduce dimensiunea.

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.