Kategória produktu
Kontaktuj nás
Pridať: 5F, budova 3A, No.8 Xiyuanyi Road, West Lake Science Park, Hangzhou, Čína
Tel: + 86-571-87858811
Mob: +8613616520351
E-mail: trade@qiyangtech.com
správy
Domov > správy > Obsah
Ako ručne uvoľniť Linuxovú pamäť? Zoberme si I.mx6 ako príklad
Jul 27, 2018

Po prvé, obvyklá situácia

Prvý hovor "voľný" príkaz:

citácie:

[root @ server ~] # free -m celkom použité voľné zdieľané vyrovnávacie pamäte uložené vo vyrovnávacej pamäti Mem: 249 163 86 0 10 94 - / + vyrovnávacie pamäte / vyrovnávacia pamäť: 58 191 Swap: 511 0 511

medzi nimi:

citácie:

celkový počet pamätí, počet už použitých pamätí, voľný počet voľných pamätí, celkové množstvo pamäte zdieľaných viacerých procesov, veľkosť pamäte vyrovnávacích pamätí Buffer Cache a vyrovnávacej pamäte cache - Buffers / cache pamäť: Počet pamätí použitých - vyrovnávacie pamäte - vyrovnávacej pamäte + vyrovnávacie pamäte / vyrovnávacej pamäte + vyrovnávacie pamäte + uložená pamäť vo vyrovnávacej pamäti = voľná pamäť + vyrovnávace pamäte + vyrovnávacej pamäte

S týmto základom môžete vedieť, že som teraz používal pre 163 MB, zadarmo pre 86 MB, vyrovnávaciu pamäť a uložené do vyrovnávacej pamäte boli 10 MB, 94 MB.

Potom ukážem, či v pamäti došlo k nejakej zmene, ak vykonám súbor s kópiou.

citácie:

[root @ server ~] # cp-r / etc ~ / test / [root @ server ~] # free -m celkom použité voľné zdieľané vyrovnávacie pamäte cache Mem: 249 244 4 0 8 174 - / buffery / cache: : 511 0 511

Potom, čo som prikázal implementáciu konca, používa pre 244 MB, zadarmo pre 4 MB, vyrovnávacie pamäte pre 8 MB, uložené do vyrovnávacej pamäte pre 174 MB. Bože, boli všetci pojímaní v cache. Nebuďte nervózni, je to zlepšiť účinnosť praxe čítania súborov.

S cieľom zlepšiť efektivitu prístupu na disk, Linux urobil nejaký prepracovaný dizajn, okrem dentry cache (pre VFS, urýchliť konverziu názvu cesty k súboru na inode), tiež vzal dve hlavné cesty Cache: Buffer

Cache a Cache stránky. Prvý je pre disk čítanie a zápis, druhý je pre súbor inode čítať a písať. Tieto vyrovnávacej pamäte sú efektívne skrátené

I / O systém volá čas (ako čítanie, písanie, getdents).

Potom niekto povedal po určitom čase, linux automaticky uvoľní použitú pamäť. Počkajte nejaký čas, vyskúšajte znova a uistite sa, či sa uvoľňuje?

citácie

[root @ server test] # free -m celkom používané bezplatné zdieľané vyrovnávacie pamäte cache Mem: 249 244 5 0 8 174 - / + buffery / cache: 61 188 Swap: 511 0 511

Zdá sa, že neexistuje žiadna zmena. (v súčasnej situácii je správa pamäte relevantná aj pre Swap)

Takže môžem ručne uvoľniť pamäť? Odpoveď je áno!

Po druhé ručne uvoľnite vyrovnávaciu pamäť

/ proc je virtuálny súborový systém, môžeme ho čítať a písať ako prostriedok komunikácie s entitou jadra. Inými slovami, môžete upraviť súbor / proc upraviť aktuálne správanie jadra. Potom môžeme upraviť / proc / sys / vm / drop_caches na uvoľnenie pamäte. Táto operácia je nasledovná:

Referencia [root @ server test] # cat / proc / sys / vm / drop_caches 0 Po prvé, hodnota / proc / sys / vm / drop_caches je predvolená hodnota 0. Citácia [root @ server test]

Ručne spustite príkaz synchronizácie (príkaz Popis: synchronizácia spustite podprogram synchronizácie.) Ak musíte systém zastaviť, spustite príkaz synchronizácie, aby ste zabezpečili integritu súborového systému .sync

Príkaz zapísať všetky nepísané systémové vyrovnávacie pamäte na disk, vrátane modifikovaných i-uzlov, oneskorených blokových vstupov / výstupov a mapovacích súborov na čítanie a zápis)

Citácia [root @ test servera] # echo 3> / proc / sys / vm / drop_cache [root @ test servera] # cat / proc / sys / vm / drop_caches 3 nastaviť / proc / sys / vm / drop_caches to 3 quote @server test] # free -m celkom používané bezplatné zdieľané vyrovnávacie pamäte cache Mem: 249 66 182 0 0 11 - / + buffery / cache: 55 194 Swap: 511 0 511

Potom spustite voľný príkaz, nájdete aktuálne používané na 66 MB, zadarmo pre 182 MB, vyrovnávacie pamäte pre 0 MB, uložené do vyrovnávacej pamäte na 11 MB. Takže je to účinné vydanie vyrovnávacej pamäte a vyrovnávacej pamäte.

Použitie / proc / sys / vm / drop_caches je popísané nižšie

Citácia / proc / sys / vm / drop_caches (od Linuxu 2.6.16) Zapisovanie do tohto súboru spôsobí, že jadro z pamäte uvoľní pamäťové pamäte z cache, dentries a inodes. Ak chcete uvoľniť stránku, použite echo 1> / proc / sys / vm / drop_caches; na uvoľnenie dentries a inodes, použite echo 2> / proc / sys / vm / drop_caches; na uvoľnenie pagecache, dentries a inodes, použite echo 3> / proc / sys / vm / drop_caches. Pretože je to nedeštruktívna operácia a špinavé objekty nie sú uvoľniteľné, používateľ by mal najskôr spustiť synchronizáciu.

Po tretie, môj názor

Vyššie uvedený článok dal viac "intuitívnu" odpoveď na otázky týkajúce sa správy pamäte Linuxu mnohými užívateľmi po mnoho rokov, cítim sa trochu ako kompromis s jadrovým vývojovým tímom.

Mám výhrady k tomu, či potrebujem použiť túto hodnotu alebo spomenúť hodnotu používateľovi:

citácie

1, možno vidieť od človeka, táto hodnota je poskytnutá po 2.6.16 jadro verzia, takže to je, stará verzia operačného systému, ako je červená vlajka DC 5.0, verzia pred RHEL 4.x nemal to ;

2, ak systémová pamäť stačí na pozorovanie, stále mieni vidieť použitie swapu a veľkosť dvoch hodnôt si / tak;

Všeobecná otázka používateľa je, prečo je taká malá, či pamäť nie je uvoľnená po zatvorení aplikácie?

Ale v skutočnosti, všetci vieme, že je to preto, že Linux sa líši od systému Windows na správu pamäte, bez malých nie je, že pamäť nestačí, mali by ste vidieť poslednú hodnotu druhého riadku zadarmo:

citácie

- / + vyrovnávacie pamäte / vyrovnávacia pamäť: 58 191

Toto je množstvo pamäte, ktoré je k dispozícii pre systém.

Samotný projekt nám hovorí, že ak aplikácia má problémy ako únik pamäte, problémy s pretečením, môže byť rýchlejšie posúdiť z použitia swapu, ale vyššie voľné je ťažšie vidieť.

Práve naopak, ak povieme používateľovi, že môže systém zmeniť hodnotu, môže uvoľniť pamäť, voľnosť bude väčšia. Čo si myslí používateľ? Nemyslí si, že operačný systém "má problém"?

Takže, pretože jadro môže rýchlo vyčistiť vyrovnávaciu pamäť alebo vyrovnávaciu pamäť, nie je to ťažké robiť (čo možno vidieť z vyššie uvedenej operácie), ale jadro to neurobilo (predvolené je 0), nemali by sme len zmeniť to náhodne.

Za normálnych okolností aplikácia stabilne funguje v systéme a voľná hodnota zostane na stabilnej hodnote, aj keď sa môže zdať nižšia.

Keď nie je dostatočná pamäť, aplikácia nemôže získať dostupnú pamäť, chybu OOM a iné problémy, možno by sme mali viac analyzovať príčiny aplikácie, ako napríklad počet užívateľov je príliš veľký, čo vedie k nedostatku pamäte, aplikácia pretečenie pamäte, v opačnom prípade vymažte vyrovnávaciu pamäť, aby sa vynútilo uvoľnenie veľkosti voľného, a preto môže problém len nastať na dočasný štít.

Myslím si, že s výnimkou nedostatku pamäte, pokiaľ nie je vo fáze vývoja softvéru, musíme dočasne vymazať vyrovnávaciu pamäť na určenie využitia pamäte; alebo aplikácia už neposkytuje podporu, aj keď má aplikácia problém s pamäťou a nedá sa vyhnúť prípadu, mohli by sme zvážiť len časové vymazanie vyrovnávacej pamäte. (Bohužiaľ, tieto aplikácie zvyčajne beží na starom verzii operačného systému, vyššie uvedená operácia sa nedá vyriešiť aj).


QY-IMX6-V.jpg

  • Newsletter
  • Kategória produktu
  • Kontaktuj nás
    Pridať: 5F, budova 3A, No.8 Xiyuanyi Road, West Lake Science Park, Hangzhou, Čína
    Tel: + 86-571-87858811
    Mob: +8613616520351
    E-mail: trade@qiyangtech.com
  • QR Code
  • Copyright © Zhejiang Qiyang Inteligentné Technology Co, Ltd Všetky práva vyhradené.