Kategorija proizvoda
Kontaktiraj nas
Dodaj: 5F, zgrada 3A, broj 8 Xiyuanyi Road, West Lake Science Park, Hangžu, Kina
Tel: + 86-571-87858811
Mob: +8613616520351
E-mail: trade@qiyangtech.com
Novosti
Dom > Novosti > Sadržaj
Kako ručno pustiti Linux memoriju? Primite I.mx6 kao primer
Jul 27, 2018

Prvo, uobičajena situacija

Prva komanda "slobodna" naredba:

Citati:

[root @ server ~] # besplatno -m ukupno korišten besplatni deljeni bufferi cached Mem: 249 163 86 0 10 94 - / + buffers / keš: 58 191 Zamjena: 511 0 511

među njima:

Citati:

ukupan broj memorije, broj već korišćenog memorije, slobodan broj slobodne memorije, ukupna količina memorije zajedničkog višestrukog procesa, veličina diska pufera Buffer keš i keširana stranica Keš memorija -beferi / keš memorija: broj memorije za korištenje - buffers - keširani + puferi / keš slobodni + odbori + keširana dostupna memorija = besplatna memorija + odbori + keširani.

Sa ovom temom možete saznati da sam sada koristio 163MB, besplatan za 86MB, buffer i keširan je bio 10MB, 94MB.

Tada da vidimo da li postoji promena u memoriji ako izvršim kopiju datoteke.

Citati:

[root @ server ~] # cp-r / etc ~ / test / [root @ server ~] # besplatno -m ukupno korišten besplatni deljeni bufferi cached Mem: 249 244 4 0 8 174 - / + buffers / keš: 62 187 Zamjena : 511 0 511

Nakon što sam komandovao implementacijom kraja, korišten za 244MB, slobodan za 4MB, baferi za 8MB, keširani za 174MB. Bože, sve su bile jednjene cached-om. Nemojte biti nervozni, ovo je poboljšanje efikasnosti praćenja čitanja datoteka.

Da bi se poboljšala efikasnost pristupa disku, Linux je uradio neobičan dizajn, pored keš memorije (za VFS, ubrzava konverziju imena putanje datoteke na inode), takođe je napravio dva glavna načina keša: Buffer

Keš i keš memorije. Prvi je za čitanje i pisanje diska, a drugi je za čitanje i pisanje inode datoteke. Ovi keš efikasno se skraćuju

I / O sistem poziva vreme (kao što je čitanje, pisanje, getdents).

Zatim je neko rekao nakon jednog perioda, linux će automatski otpustiti memoriju koja se koristi. Sačekajte malo vremena, koristićemo se slobodno da pokušamo ponovo da vidimo da li postoji oslobađanje?

Citati

[root @ server test] # besplatno -m ukupno korišten besplatni deljeni bufferi cached Mem: 249 244 5 0 8 174 - / + buffers / keš: 61 188 Zamjena: 511 0 511

Izgleda da nema promena. (u stvarnoj situaciji, upravljanje memorijom je takođe relevantno za Swap)

Da li mogu ručno da oslobodim sećanja? Odgovor je da!

Drugo, ručno pustite keš memoriju

/ proc je virtuelni sistem datoteka, možemo ga čitati i pisati kao sredstvo komunikacije sa entitetom kernela. Drugim rečima, možete modifikovati / proc datoteku kako biste izvršili prilagođavanje trenutnog ponašanja kernela. Tada možemo prilagoditi / proc / sys / vm / drop_caches da oslobodimo memoriju. Operacija je sledeća:

Referenca [root @ server test] # cat / proc / sys / vm / drop_caches 0 Prvo, vrednost / proc / sys / vm / drop_caches podrazumeva 0. Citat [root @ server test] # sync

Ručno izvršite komandu za sinhronizaciju (Opis: sinhronizacija za pokretanje sinhronizacione potprograma.) Ako morate zaustaviti sistem, pokrenite komandu sinhronizacije kako biste osigurali integritet datotečnog sistema .sync

Komanda da napiše sve nepisane sistemske bafere na disk, uključujući modifikovane i-čvorove, zakašnjene blok I / O i datoteke za mapiranje čitanja i pisanja)

Citat [root @ server test] # echo 3> / proc / sys / vm / drop_caches [root @ server test] # cat / proc / sys / vm / drop_caches 3 set / proc / sys / @server test] # besplatno -m totalno korišten besplatni deljeni bufferi cached Mem: 249 66 182 0 0 11 - / + buffers / keš: 55 194 Swap: 511 0 511

Zatim pokrenite besplatnu komandu, pronaći ćete struju koja se koristi za 66MB, besplatno za 182MB, bafera za 0MB, keširan na 11MB. Dakle, to je efikasno puštanje pufera i keša.

Korišćenje / proc / sys / vm / drop_caches je opisano u nastavku

Citat / proc / sys / vm / drop_caches (od Linux 2.6.16) Pisanje u ovu datoteku dovodi do toga da kernel isprazne čiste kešove, dentrije i inode iz memorije, što dovodi do toga da se memorija postane slobodna. Da biste oslobodili pagecache, koristite echo 1> / proc / sys / vm / drop_caches; za besplatne zubare i inode, koristite echo 2> / proc / sys / vm / drop_caches; da biste oslobodili pagecache, zubare i inode, koristite echo 3> / proc / sys / vm / drop_caches. Pošto je to ne-destruktivna operacija, a prljavi objekti nisu slobodni, korisnik bi trebao prvo pokrenuti sinhronizaciju.

Treće, moje mišljenje

Navedeni članak daje mnogo "intuitivnog" odgovora za pitanja vezanih za upravljanje memorijom na Linuxu od strane mnogih korisnika mnogo godina, osećam se kao osnovni kompromis razvoja tima.

Imam rezervu o tome da li treba da koristim ovu vrednost ili da navedem vrednost korisniku:

Citati

1, može se videti od čoveka, ova vrijednost se daje nakon 2.6.16 jezgru verzije, tako da je stara verzija operativnog sistema, kao što je crvena zastavica DC 5.0, verzija prije RHEL 4.x nije imala ovo ;

2, ako je sistemska memorija dovoljna za posmatranje, još uvek želim da vidim upotrebu razmene i veličine dve vrijednosti si / so;

Često postavljeno pitanje korisnika je zašto je besplatan tako mali, da li se memorija ne pušta nakon zatvaranja aplikacije?

Ali u stvari, svi znamo da je to zato što se Linux razlikuje od operativnog sistema Windows na upravljanju memorijom; besplatan mali nije da memorija nije dovoljna, trebalo bi da vidite poslednju vrijednost druge linije besplatne:

Citati

- / + odbojnici / keš: 58 191

Ovo je količina memorije koja je dostupna sistemu.

Stvarni projekat nam govori da ako aplikacija ima probleme kao što je curenje memorije, problemi sa prelivom, može se brzo procijeniti korištenje swap-a, ali je teže videti više od slobodnih.

Naprotiv, u ovom trenutku, ako kažemo korisniku da modifikuje sistem vrednost, "može" da otpusti memoriju, besplatno će biti veće. Šta bi korisnik mislio? Da li misle da operativni sistem "ima problem"?

Dakle, pošto jezgro može brzo da obriši bafer ili keš memoriju, to nije teško učiniti (što se vidi iz gore navedene operacije), ali jezgro to nije učinilo (podrazumevano je 0), ne treba samo da promenimo slučajno.

Pod normalnim okolnostima, aplikacija stabilno radi na sistemu, a slobodna vrijednost će ostati stabilna vrijednost, iako se može činiti manje.

Kada nema dovoljno memorije, aplikacija ne može dobiti raspoloživu memoriju, OOM grešku i druga pitanja, možda bi trebali više analizirati razloge aplikacije, kao što je količina korisnika prevelikog što dovodi do nedostatka memorije, primjene preopterećenje memorije, u suprotnom, obrišite pufer da biste prisilili da oslobodite veličinu slobodne, stoga, može se samo postaviti problem na privremeni štit.

Dakle, mislim, isključujući nedostatak memorije, osim ako nije u fazi razvoja softvera, potrebno je privremeno obrisati pufer da odredimo primjenu korištenja memorije; ili aplikacija više ne pruža podršku, čak i ako aplikacija ima problem za memoriju, a ne može se izbjeći slučaj, mogli bismo samo uzeti u obzir vremensko razbijanje bafera. (Nažalost, takve aplikacije obično rade na verziji stare verzije operativnog sistema, gore navedena operacija takođe ne može biti rešena).


QY-IMX6-V.jpg

  • Newsletter
  • Kategorija proizvoda
  • Kontaktiraj nas
    Dodaj: 5F, zgrada 3A, broj 8 Xiyuanyi Road, West Lake Science Park, Hangžu, Kina
    Tel: + 86-571-87858811
    Mob: +8613616520351
    E-mail: trade@qiyangtech.com
  • QR Code
  • Copyright © Zhejiang Qiyang Inteligentna tehnologija Co, Ltd Sva prava pridržana.