Esitys

Välimuistin tyhjentäminen Linuxissa

Välimuistin tyhjentäminen Linuxissa
Linux-tiedostojärjestelmän välimuistia (Page Cache) käytetään IO-toimintojen nopeuttamiseen.  Tietyissä olosuhteissa järjestelmänvalvoja tai kehittäjä saattaa haluta tyhjentää välimuistin manuaalisesti.  Tässä artikkelissa selitämme, kuinka Linux-tiedostojärjestelmän välimuisti toimii.  Sitten näytetään, kuinka välimuistin käyttöä seurataan ja kuinka välimuisti tyhjennetään.  Teemme joitain yksinkertaisia ​​suorituskykykokeita varmistaaksemme, että välimuisti toimii odotetulla tavalla ja että välimuistin huuhtelu ja tyhjentäminen toimii myös odotetusti.

Kuinka Linux-tiedostojärjestelmän välimuisti toimii

Ydin varaa tietyn määrän järjestelmämuistia tiedostojärjestelmän levyjen välimuistiin tallentamiseksi yleisen suorituskyvyn nopeuttamiseksi.  Linux-välimuistia kutsutaan Sivun välimuisti. Sivun välimuistin koko on määritettävissä suurien oletusasetusten avulla, jotka mahdollistavat välimuistin suurille määrille levylohkoja.  Välimuistin enimmäiskoko ja käytännöt siitä, milloin tiedot poistetaan välimuistista, ovat säädettävissä ytimen parametreilla.  Linux-välimuistin lähestymistapaa kutsutaan takaisin kirjoitusvälimuistiksi.  Tämä tarkoittaa, että jos tiedot kirjoitetaan levylle, ne kirjoitetaan muistiin välimuistiin ja merkitään välimuistiin likaisiksi, kunnes ne synkronoidaan levylle.  Ydin ylläpitää sisäisiä tietorakenteita optimoidakseen välimuistista poistettavat tiedot, kun välimuistissa tarvitaan enemmän tilaa.

Linuxin luettujen järjestelmäkutsujen aikana ydin tarkistaa, onko pyydetyt tiedot tallennettu välimuistin tietolohkoihin, mikä olisi onnistunut välimuistin osuma ja tiedot palautetaan välimuistista tekemättä mitään IO: ta levyjärjestelmälle.  Välimuistin puuttuessa tiedot haetaan IO-järjestelmästä ja välimuisti päivitetään välimuistikäytäntöjen perusteella, koska näitä samoja tietoja todennäköisesti pyydetään uudelleen.

Kun tietyt muistin käyttörajat saavutetaan, taustatehtävät alkavat kirjoittaa likaisia ​​tietoja levylle varmistaakseen, että se tyhjentää muistivälimuistin.  Näillä voi olla vaikutusta muistin ja suorittimia vaativien sovellusten suorituskykyyn, ja järjestelmänvalvojat ja / tai kehittäjät tarvitsevat virityksen.

Ilmaisen komennon avulla voit tarkastella välimuistin käyttöä

Voimme käyttää komentoriviltä ilmaista komentoa analysoida järjestelmän muistia ja välimuistiin varattua muistia.  Katso komento alla:

# vapaa -m

Mitä näemme vapaa Yllä oleva komento on, että on 7.5 Gt RAM-muistia tässä järjestelmässä.  Tästä vain 209 Mt käytetään ja 6.5 Mt on ilmainen.  Puskurin välimuistissa käytetään 667 Mt.  Yritetään nyt lisätä tätä lukua suorittamalla komento 1 gigatavun tiedoston luomiseksi ja lukemalla tiedosto.  Alla oleva komento tuottaa noin 100 Mt satunnaisia ​​tietoja ja lisää sitten 10 kopiota tiedostosta yhteen iso_tiedosto.

# dd jos = / dev / satunnainen = / root / data_file count = 1400000
# for i sarjassa 1 10; tee kaiku $ i; kissa data_tiedosto >> iso_tiedosto; tehty

Lue nyt tämä 1 keikkatiedosto ja tarkista sitten ilmainen komento uudelleen:

# kissa iso_tiedosto> / dev / null
# vapaa -m

Voimme nähdä, että puskurivälimuistin käyttö on noussut 667: sta 1735 megatavuun, mikä on noin 1 gigatavun lisäys puskurivälimuistin käytössä.

Proc Sys VM Drop Cache -komento

Linux-ydin tarjoaa käyttöliittymän välimuistin pudottamiseksi, kokeillaan näitä komentoja ja katsotaan vaikutus vapaaseen asetukseen.

# echo 1> / proc / sys / vm / drop_cache
# vapaa -m

Yllä voimme nähdä, että suurin osa puskurivälimuistin varaamisesta vapautettiin tällä komennolla.

Kokeellinen vahvistus siitä, että pudotusvälimuistit toimivat

Voimmeko suorittaa suorituskyvyn tarkistuksen käyttämällä välimuistia tiedoston lukemiseen? Luetaan tiedosto ja kirjoitetaan se takaisin hakemistoon / dev / null testatakseen kuinka kauan tiedoston lukeminen levyltä kestää.  Aikamme sen aika komento.  Suoritamme tämän komennon heti tyhjennettyämme välimuistin yllä olevilla komennoilla.

Kesti 8.4 sekuntia tiedoston lukemiseen.  Luetaan se nyt uudelleen, kun tiedoston pitäisi olla tiedostojärjestelmän välimuistissa, ja katsotaan kuinka kauan se kestää nyt.

Puomi!  Se kesti vain .2 sekuntia verrattuna 8.4 sekuntia sen lukemiseen, kun tiedostoa ei tallennettu välimuistiin.  Vahvistetaan toistetaan tämä uudelleen tyhjentämällä ensin välimuisti ja lukemalla tiedosto sitten 2 kertaa.

Se toimi täydellisesti odotusten mukaisesti.  8.5 sekuntia välimuistissa olevalle lukemiselle ja .2 sekuntia välimuistissa olevaan lukemiseen.

Johtopäätös

Sivun välimuisti otetaan automaattisesti käyttöön Linux-järjestelmissä, ja se nopeuttaa läpinäkyvästi IO: ta tallentamalla äskettäin käytetyt tiedot välimuistiin.  Jos haluat tyhjentää välimuistin manuaalisesti, mikä voidaan tehdä helposti lähettämällä kaiukomento / proc-tiedostojärjestelmään osoittamalla ytimelle välimuistin pudottamiseksi ja välimuistiin käytetyn muistin vapauttamiseksi.  Komennon suorittamisen ohjeet näkyivät tässä artikkelissa yllä ja myös välimuistikäytön kokeellinen vahvistus ennen huuhtelua ja sen jälkeen.

AppyMouse On-screen Trackpad and Mouse Pointer for Windows Tablets
Tablet users often miss the mouse pointer, especially when they are habitual to using the laptops. The touchscreen Smartphones and tablets come with m...
Middle mouse button not working in Windows 10
The middle mouse button helps you scroll through long webpages and screens with a lot of data. If that stops, well you will end up using the keyboard ...
How to change Left & Right mouse buttons on Windows 10 PC
It's quite a norm that all computer mouse devices are ergonomically designed for right-handed users. But there are mouse devices available which are s...