Hogyan lehet törölni a gyorsítótárat Linuxon

How Clear Cache Linux



A linux fájlrendszer gyorsítótárát (Page Cache) az IO műveletek gyorsítására használják. Bizonyos körülmények között egy rendszergazda vagy fejlesztő kézzel törölheti a gyorsítótárat. Ebben a cikkben elmagyarázzuk, hogyan működik a Linux fájlrendszer gyorsítótára. Ezután bemutatjuk, hogyan kell figyelni a gyorsítótár használatát és hogyan kell törölni a gyorsítótárat. Néhány egyszerű teljesítménykísérletet végzünk annak ellenőrzésére, hogy a gyorsítótár a várt módon működik -e, és hogy a gyorsítótár öblítése és törlése is a várt módon működik -e.

Hogyan működik a Linux fájlrendszer gyorsítótára?

A rendszermag bizonyos mennyiségű rendszermemóriát foglal le a fájlrendszer -lemezhozzáférések gyorsítótárazására az általános teljesítmény gyorsítása érdekében. A linuxos gyorsítótár az úgynevezett Oldal gyorsítótár . Az oldal gyorsítótárának mérete konfigurálható nagyvonalú alapértelmezett beállításokkal, amelyek lehetővé teszik nagy mennyiségű lemezblokk gyorsítótárazását. A gyorsítótár maximális mérete és az adatok kiürítésére vonatkozó házirendek a rendszermag paramétereivel állíthatók be. A linux cache megközelítést írják visszaírási gyorsítótárnak. Ez azt jelenti, hogy ha az adatokat lemezre írják, a memóriába írják a gyorsítótárba, és koszosnak jelölik a gyorsítótárban, amíg szinkronizálják a lemezzel. A kernel belső adatstruktúrákat tart fenn annak optimalizálása érdekében, hogy mely adatokat kell kiüríteni a gyorsítótárból, ha több hely szükséges a gyorsítótárban.







A Linux olvasási rendszerhívásai során a rendszermag ellenőrzi, hogy a kért adatok adatblokkokban vannak -e tárolva a gyorsítótárban, ez sikeres gyorsítótár -leütés lenne, és az adatok a gyorsítótárból kerülnek vissza, anélkül, hogy bármilyen IO -t végrehajtanának a lemezrendszerben. A gyorsítótár kihagyása esetén az adatok lekérésre kerülnek az IO rendszerből, és a gyorsítótár frissítésre kerül a gyorsítótárazási házirendek alapján, mivel valószínűleg ugyanazokat az adatokat kell újra kérni.



A memóriahasználat bizonyos küszöbértékének elérésekor a háttérfeladatok elkezdenek piszkos adatokat írni a lemezre, hogy biztosítsák a memória gyorsítótárának törlését. Ezek hatással lehetnek a memória- és CPU -igényes alkalmazások teljesítményére, és a rendszergazdák és / vagy a fejlesztők hangolását igénylik.



A Free parancs használatával megtekintheti a gyorsítótár használatát

A parancssorból származó ingyenes parancs segítségével elemezhetjük a rendszermemóriát és a gyorsítótárazáshoz rendelt memória mennyiségét. Lásd az alábbi parancsot:





#ingyenes -m

Amit látunk a ingyenes a fenti parancs szerint 7,5 GB RAM van ezen a rendszeren. Ebből csak 209 MB van felhasználva, és 6,5 MB ingyenes. A puffer gyorsítótár 667 MB -ot használ. Most próbáljuk meg növelni ezt a számot egy parancs futtatásával 1 gigabájtos fájl létrehozásához és a fájl elolvasásához. Az alábbi parancs hozzávetőleg 100 MB véletlenszerű adatot generál, majd a fájl 10 példányát egybe fűzi nagy_fájl .



# dd if =/dev/random of =/root/data_file count = 1400000
# i az `1. sorban '; do echo $ i; macska adatfájl >> nagy_fájl; Kész

Most mindenképpen olvassuk el ezt az 1 Gig fájlt, majd ellenőrizzük újra az ingyenes parancsot:

# macska nagy_fájl> /dev /null
# szabad -m

Láthatjuk, hogy a puffer gyorsítótár használata 667 -ről 1735 megabájtra nőtt, ami nagyjából 1 gigabájt növekedést jelent a puffer gyorsítótár használatában.

Proc Sys VM Drop Caches parancs

A linux kernel interfészt biztosít a gyorsítótár elhagyásához. Próbáljuk ki ezeket a parancsokat, és nézzük meg a szabad beállításra gyakorolt ​​hatást.

# echo 1>/proc/sys/vm/drop_caches
# szabad -m

Láthatjuk fent, hogy a puffer gyorsítótár kiosztásának nagy része ezzel a paranccsal szabadult fel.

Kísérleti ellenőrzés, hogy a Drop Caches működik

Végezhetünk -e teljesítmény -ellenőrzést a gyorsítótár használatával a fájl olvasásához? Olvassuk el a fájlt, és írjuk vissza a /dev /null mappába annak érdekében, hogy teszteljük, mennyi ideig tart a fájl lemezről történő olvasása. Időzítjük a idő parancs. Ezt a parancsot közvetlenül a gyorsítótár törlése után hajtjuk végre a fenti parancsokkal.

A fájl elolvasása 8,4 másodpercet vett igénybe. Most olvassuk el újra, hogy a fájlnak a fájlrendszer gyorsítótárában kell lennie, és nézzük meg, mennyi ideig tart most.

Bumm! A fájl gyorsítótárazás nélküli elolvasása mindössze 0,2 másodpercet vett igénybe, szemben a 8,4 másodperccel. Az ellenőrzéshez ismételjük meg újra, először töröljük a gyorsítótárat, majd kétszer olvassuk el a fájlt.

A várakozásoknak megfelelően tökéletesen működött. 8,5 másodperc a nem gyorsítótárazott olvasáshoz és 0,2 másodperc a gyorsítótárazott olvasáshoz.

Következtetés

Az oldal gyorsítótár automatikusan engedélyezve van Linux rendszereken, és átláthatóan felgyorsítja az IO -t azáltal, hogy nemrégiben használt adatokat tárol a gyorsítótárban. Ha manuálisan szeretné törölni a gyorsítótárat, akkor egyszerűen megteheti az echo parancsot a /proc fájlrendszerre, jelezve a kernelnek, hogy hagyja el a gyorsítótárat, és szabadítsa fel a gyorsítótárhoz használt memóriát. A parancs futtatására vonatkozó utasításokat fent találtuk ebben a cikkben, valamint a gyorsítótár viselkedésének kísérleti érvényesítését az öblítés előtt és után.