Produkto kategorija
Susisiekite su mumis
Pridėti: 5F, pastatas 3A, Nr. 8 Xiyuanyi kelias, Vakarų ežero mokslo parkas, Hangdžou, Kinija
Tel: + 86-571-87858811
Mob: +8613616520351
El. Paštas: trade@qiyangtech.com
žinios
Namuose > žinios > Turinys
Kaip išleisti "Linux" atmintį rankiniu būdu? Paimkite I.mx6 kaip pavyzdį
Jul 27, 2018

Pirma, įprasta situacija

Pirmoji "nemokama" komanda:

Citatos:

[root @ server ~] # nemokamai -m bendras naudojamų nemokamų bendrų buferių talpykloje Mem: 249 163 86 0 10 94 - / + buferiai / talpyklos: 58 191 Mainai: 511 0 511

tarp jų:

Citatos:

bendras atmintis, jau naudojamos atminties kiekis, laisvas atminties kiekis, bendras atminties kiekis bendrai veikiantiems keliems procesams, buferio disko dydis Buferio talpykla ir talpyklos puslapis Tache-buferiai / talpyklos atmintis: panaudotų atminties kiekis - buferiai - talpyklos + buferiai / talpyklos nemokamai + buferiai + talpykloje esanti atmintis = laisva atmintis + buferiai + talpykloje.

Su šiuo pagrindu galite sužinoti, kad aš dabar naudoju 163 MB, nemokamai 86 MB, buferio ir talpyklos buvo 10 MB, 94 MB.

Tada pažiūrėkime, ar atmintyje pasikeis, jei aš paleisiu kopijos failą.

Citatos:

[root @ server ~] # cp-r / etc ~ / test / [root @ server ~] # free -m bendras naudojamų nemokamų bendrų buferių talpykloje mem: 249 244 4 0 8 174 - / + buffers / cache: 62 187 Swap : 511 0 511

Po to, kai aš įsakiau įgyvendinti pabaigą, naudojamas 244 MB, 4MB nemokamai, buferiai, skirti 8 MB, saugomi 174 MB. Dievas, visi buvo valgyti kefytuotu. Nesijaudink, tai yra pagerinti failų skaitymo praktikos efektyvumą.

Siekiant pagerinti prieigos prie disko efektyvumą, "Linux" atliko keletą išsamios konstrukcijos, be dumplių talpyklos ("VFS", pagreitina failo kelio pavadinimo į inode keitimą), taip pat paėmė du pagrindinius Cache metodus: Buferis

Talpyklos ir talpyklos puslapis. Pirmasis yra disko bloko skaityti ir rašyti, pastarasis yra failo inode skaityti ir rašyti. Šios talpyklos yra efektyviai sutrumpintos

I / O sistemos skambučių laikas (pvz., Skaitymas, rašymas, getdents).

Tuomet kažkas pasakė po tam tikro laiko, "linux" automatiškai išlaisvins išnaudotą atmintį. Palaukite šiek tiek laiko, mes naudojame nemokamai, kad pakartotinai bandytume pamatyti, ar yra leidimas?

Citatos

[root @ server test] # free -m viso naudojamų nemokamų bendrų buferių talpykloje Mem: 249 244 5 0 8 174 - / + buferiai / talpyklos: 61 188 apsikeitimo: 511 0 511

Atrodo, kad nėra jokių pokyčių. (esant dabartinei situacijai, atminties valdymas yra svarbus ir apsikeitimo atveju)

Ar galiu rankiniu būdu atleisti atminties? Atsakymas yra taip!

Antra, rankiniu būdu paleiskite talpyklą

/ proc yra virtuali failų sistema, mes galime ją skaityti ir parašyti kaip bendravimo su branduolio objektu priemonę. Kitaip tariant, galite keisti failą / proc, kad galėtumėte koreguoti esamą branduolio elgseną. Tada mes galime pakoreguoti / proc / sys / vm / drop_caches, kad atlaisvintumėte atmintį. Operacija yra tokia:

Nuorodos [root @ server test] # cat / proc / sys / vm / drop_caches 0 Pirma, / proc / sys / vm / drop_caches vertė pagal nutylėjimą yra 0. Cituoti [root @ server test] # sync

Rankiniu būdu paleiskite sinchronizavimo komandą (Aprašymas: sinchronizavimo komanda, kad paleistumėte sinchronizavimo paprogramę. Jei norite sustabdyti sistemą, paleiskite sinchronizavimo komandą, kad užtikrintumėte failų sistemos vientisumą .sync

Komandą parašyti visus nerašytus sistemos buferius į diską, įskaitant modifikuotus "i-mazgus", uždelstą bloko I / O ir failų atvaizdavimą "skaityti ir rašyti")

Quote [root @ server test] # echo 3> / proc / sys / vm / drop_caches [root @ server test] # cat / proc / sys / vm / drop_caches 3 set / proc / sys / vm / drop_caches to 3 quote [root @server test] # free -m viso naudojamų nemokamų bendrų buferių talpykloje Mem: 249 66 182 0 0 11 - / + buferiai / talpyklos: 55 194 apsikeitimo: 511 0 511

Tada paleiskite laisvą komandą, rasite esamą, naudojamą 66 MB, nemokamai 182 MB, buferiai 0 MB, talpyklos iki 11 MB. Taigi tai yra veiksmingas buferio ir talpyklos išleidimas.

Toliau aprašyta / proc / sys / vm / drop_caches naudojimas

Cituoti / proc / sys / vm / drop_caches (nuo Linux 2.6.16). Įrašant į šį failą branduolys išvalo atmintyje švarius talpyklius, dentries ir inodes, todėl ši atmintis tampa laisva. Norėdami išjungti pagecache, naudokite echo 1> / proc / sys / vm / drop_caches; nemokamai dentries ir inodes, naudokite echo 2> / proc / sys / vm / drop_caches; išlaisvinti pagecache, dentries ir inodes, naudokite echo 3> / proc / sys / vm / drop_caches. Kadangi tai yra neardomoji operacija ir nešvarūs objektai nėra laisvai, vartotojas turėtų paleisti sinchronizavimą pirmiausia.

Trečia, mano nuomone

Pirmiau pateiktas straipsnis daugelį metų naudoja daugybę "Linux" atminties valdymo klausimų "intuityvus" atsakymas, aš jaučiuosi šiek tiek panašus į pagrindinį kūrėjų komandos kompromisą.

Turiu abejonių dėl to, ar man reikia naudoti šią vertę, ar paminėti naudotojo vertę:

Citatos

1, tai matyti iš vyro, ši vertė pateikiama po 2.6.16 pagrindinės versijos, taigi, senoji operacinės sistemos versija, tokia kaip raudona vėliava DC 5.0, verison prieš RHEL 4.x neturėjo šios ;

2, jei sistemos atmintyje yra pakankamai stebėjimo, vis dar ketinu pamatyti keitimo ir dviejų reikšmių si / taip dydį;

Dažnai kyla klausimas vartotojui, kodėl nemokamai toks mažas, ar atmintis neišleidžiama uždarius programą?

Bet iš tikrųjų mes visi žinome, kad dėl to, kad atminties valdymo sistemoje Linux skiriasi nuo "Windows", laisva maža yra ne tai, kad atminties nepakanka, taigi turėtumėte matyti paskutinę antrosios laisvos linijos vertę:

Citatos

- / + buferiai / talpyklos: 58 191

Tai yra sistemos atminties kiekis.

Faktinis projektas mums nurodo, kad jei programoje yra problemų dėl atminties nutekėjimo, perpildymo problemos, greičiau galima spręsti dėl apsikeitimo, bet pirmiau laisvą yra sunkiau pamatyti.

Priešingai, šiuo metu, jei mes pasakyme vartotojui pakeisti sistemos vertę, "gali" atleisti atminties, laisvoji bus didesnė. Ką galvoja vartotojas? Ar jie nemano, kad operacinė sistema "turi problemų"?

Taigi, kadangi branduolys gali greitai išvalyti buferį ar talpyklą, tai nėra sunku padaryti (tai galima pamatyti iš pirmiau aprašytos operacijos), bet šerdis to nepadarė (pagal nutylėjimą yra 0) neturėtume tiesiog keisti tai atsitiktinai.

Esant normalioms aplinkybėms, programa stabiliai veikia sistemą, o nemokama vertė išliks stabili, nors ji gali atrodyti mažesnė.

Kai nepakanka atminties, programoje negalima gauti atminties, OOM klaidos ir kitų problemų, galbūt turėtume daugiau išnagrinėti paraiškos priežastis, pvz., Naudotojų kiekis yra per didelis, dėl kurio atsiranda atminties trūkumas, atminties perpildymas, kitaip, išvalykite buferį, kad priverstumėte išlaisvinti laisvą dydį, todėl tai gali tiesiog uždėti problemą laikinam skydui.

Taigi, manau, kad, išskyrus atminties trūkumą, nebent tai yra programinės įrangos kūrimo etape, turime laikinai išvalyti buferį, kad nustatytume atminties panaudojimą; arba programa nebeteikia paramos, net jei programai yra atminties problema ir negalima išvengti bylos, galėtume apsvarstyti tik laiko išvalymą iš buferio. (Deja, tokios programos dažniausiai paleidžiamos senosios operacinės sistemos versijoje, taip pat negalima išspręsti pirmiau aprašytos operacijos).


QY-IMX6-V.jpg

  • Newsletter
  • Produkto kategorija
  • Susisiekite su mumis
    Pridėti: 5F, pastatas 3A, Nr. 8 Xiyuanyi kelias, Vakarų ežero mokslo parkas, Hangdžou, Kinija
    Tel: + 86-571-87858811
    Mob: +8613616520351
    El. Paštas: trade@qiyangtech.com
  • QR Code
  • Copyright © Zhejiang Qiyang Intelligent Technology Co, Ltd Visos teisės saugomos.