Produktkategori
Kontakt os
Tilføj: 5F, Bygning 3A, No.8 Xiyuanyi Road, West Lake Science Park, Hangzhou, Kina
Tlf .: + 86-571-87858811
Mob: +8613616520351
E-mail: trade@qiyangtech.com
Nyheder
Hjem > Nyheder > Indhold
Sådan frigives Linux Memory manuelt? Tag I.mx6 som et eksempel
Jul 27, 2018

For det første den sædvanlige situation

Første tal "gratis" kommando:

Citater:

[root @ server ~] # gratis -m samlet brugt gratis delte buffere cached Mem: 249 163 86 0 10 94 - / + buffere / cache: 58 191 Bytte: 511 0 511

blandt dem:

Citater:

total hukommelse, antal hukommelser, der allerede er brugt, frit antal gratis hukommelse, den samlede mængde hukommelse af delte flere processer, størrelse på bufferebuffer Buffer Cache og cached Page Cache-buffere / cache-hukommelse: Antallet af hukommelse af brugt - buffere - cached + buffere / cache free + buffere + cached ledig hukommelse = gratis hukommelse + buffere + cached.

Med dette fundament kan du vide, at jeg nu brugte til 163 MB, gratis til 86 MB, buffer og cachet var 10 MB, 94 MB.

Lad os se, om der er nogen ændring i hukommelsen, hvis jeg udfører kopifilen.

Citater:

[root @ server ~] # cp-r / etc ~ / test / [root @ server ~] # gratis -m samlet brugt gratis delte buffere cached Mem: 249 244 4 0 8 174 - / + buffere / cache: 62 187 Bytte : 511 0 511

Efter at jeg havde befalet implementeringen af enden, der blev brugt til 244 MB, gratis til 4 MB, buffere til 8 MB, cachet for 174 MB. Gud, alle er blevet spist af cachet. Vær ikke nervøs, det er at forbedre effektiviteten af fillæsningspraksis.

For at forbedre adgangen til diskadgang har Linux gjort noget uddybet design, ud over den dentry cache (for VFS, fremskynde konverteringen af filstiens navn til inode), tog også to hoved Cache-måder: Buffer

Cache og Page Cache. Den førstnævnte er til disk blok læs og skrive, sidstnævnte er til filen inode læse og skrive. Disse Cache er forkortet effektivt

I / O-systemet kalder tid (f.eks. Læs, skriv, getdents).

Så sagde nogen efter en periode, linux frigiver automatisk den anvendte hukommelse. Vent et stykke tid, vi bruger gratis til at prøve igen for at se om der er udgivelse?

Citater

[root @ server test] # gratis -m samlet brugt gratis delte buffere cached Mem: 249 244 5 0 8 174 - / + buffere / cache: 61 188 Bytte: 511 0 511

Der ser ud til at være ingen ændring. (under den aktuelle situation er hukommelsesstyringen relevant for at bytte også)

Så kan jeg manuelt frigive hukommelsen? Svaret er ja!

For det andet frigør cachen manuelt

/ proc er et virtuelt filsystem, vi kan læse og skrive gennem det som et middel til kommunikation med kernenheden. Med andre ord kan du ændre / proc filen for at foretage tilpasninger til den nuværende kerneladfærd. Derefter kan vi justere / proc / sys / vm / drop_caches for at frigøre hukommelsen. Operationen er som følger:

Reference [root @ server test] # cat / proc / sys / vm / drop_caches 0 Først er værdien af / proc / sys / vm / drop_caches default til 0. Citat [root @ server test] # sync

Udfør synkroniseringskommandoen manuelt (Beskrivelse: Sync-kommando for at køre synkroniseringsunderrutinen. Hvis du skal stoppe systemet, skal du køre synkroniseringskommandoen for at sikre filsystemets integritet .sync

Kommandoen til at skrive alle uskrevne systembuffere til disken, herunder ændrede i-noder, forsinket blok I / O og læs-skrive-mapping-filer)

Citat [root @ server test] # echo 3> / proc / sys / vm / drop_caches [root @ server test] # cat / proc / sys / vm / drop_caches 3 sæt / proc / sys / vm / drop_caches til 3 quote [root @server test] # gratis -m samlet brugt gratis delte buffere cached Mem: 249 66 182 0 0 11 - / + buffere / cache: 55 194 Bytte: 511 0 511

Kør derefter den gratis kommando, du vil finde den aktuelle bruges til 66 MB, gratis til 182 MB, buffere til 0 MB, cachet til 11 MB. Så det er den effektive udgivelse af buffer og cache.

Anvendelsen af / proc / sys / vm / drop_caches er beskrevet nedenfor

Citat / proc / sys / vm / drop_caches (siden Linux 2.6.16) At skrive til denne fil får kerneen til at slippe rene caches, dentries og inodes fra hukommelsen, hvilket får hukommelsen til at blive ledig. For at frigøre pagecache skal du bruge ekko 1> / proc / sys / vm / drop_caches; at frigøre dentries og inodes, brug echo 2> / proc / sys / vm / drop_caches; For at frigøre pagecache, dentries og inodes, brug ekko 3> / proc / sys / vm / drop_caches. Fordi dette er en ikke-destruktiv operation, og snavsede genstande ikke kan frigøres, skal brugeren først køre synkronisering.

For det tredje, min mening

Ovennævnte artikel har givet et mere "intuitivt" svar på Linux-hukommelsesadministrationsspørgsmål af mange brugere i mange år, jeg føler mig lidt som kernekompetencen om udvikling af udviklingen.

Jeg har forbehold for, om jeg skal bruge denne værdi eller nævne værdien for brugeren:

Citater

1, det kan ses fra manden, denne værdi leveres efter 2.6.16 kerneversion, så det er den gamle version af operativsystemet, såsom rødt flag DC 5.0, verison før RHEL 4.x havde ikke dette ;

2, hvis systemhukommelsen er nok til observationen, vil jeg stadig se brugen af swap og størrelsen af de to værdier si / så;

Bruger fælles spørgsmål er, hvorfor gratis så lille, om hukommelsen ikke er frigivet efter afslutningen af ansøgningen?

Men i virkeligheden ved vi alle, at dette skyldes, at Linux er forskellig fra Windows på hukommelsesadministrationen, gratis lille er ikke, at hukommelsen ikke er nok, du bør se den sidste værdi af den anden linje gratis:

Citater

- / + buffere / cache: 58 191

Dette er den mængde hukommelse, der er tilgængelig for systemet.

Det egentlige projekt fortæller os, at hvis applikationen har problemer som et hukommelseslækage, overløbsproblemer, kan det hurtigere dømmes fra brugen af swap, men ovenstående af gratis er vanskeligere at se.

Tværtimod, hvis vi fortæller brugeren at ændre systemet en værdi, "kan" frigive hukommelsen, vil fri blive større. Hvad ville brugeren tænke? Synes de ikke, at operativsystemet har et problem?

Så da kernen hurtigt kan rydde buffer eller cache, er det ikke svært at gøre (som kan ses fra ovenstående operation), men kernen gjorde det ikke (standard er 0), vi bør ikke bare for at ændre det tilfældigt.

Under normale omstændigheder fungerer applikationen stabilt på systemet, og den frie værdi forbliver på en stabil værdi, selvom den måske synes mindre.

Når der ikke er tilstrækkelig hukommelse, kan applikationen ikke få ledig hukommelse, OOM-fejl og andre problemer, vi må måske mere for at analysere årsagerne til applikationen, f.eks. Mængden af brugere er for stor, hvilket medfører hukommelseskort, anvendelsen af hukommelse overløb, ellers rydde bufferen til at tvinge til at frigøre størrelsen af den frie, derfor kan det bare sætte problemet på det midlertidige skjold.

Så jeg tror, med undtagelse af manglen på hukommelse, medmindre det er i softwareudviklingsfasen, skal vi midlertidigt fjerne bufferen for at bestemme anvendelsen af hukommelsesbrug. eller applikationen understøtter ikke længere support, selvom applikationen har et problem for hukommelsen og kan ikke undgå tilfældet, kunne vi kun overveje timing clearing af bufferen. (Desværre kører sådanne applikationer normalt på den gamle operativsystem version, den ovennævnte operation kan ikke løses også).


QY-IMX6-V.jpg

  • Newsletter
  • Produktkategori
  • Kontakt os
    Tilføj: 5F, Bygning 3A, No.8 Xiyuanyi Road, West Lake Science Park, Hangzhou, Kina
    Tlf .: + 86-571-87858811
    Mob: +8613616520351
    E-mail: trade@qiyangtech.com
  • QR Code
  • Copyright © Zhejiang Qiyang Intelligent Technology Co, Ltd Alle rettigheder forbeholdes.