Com esborrar la memòria cau a Linux

How Clear Cache Linux



La memòria cau del sistema de fitxers Linux (Page Cache) s'utilitza per fer les operacions d'E / S més ràpides. En determinades circumstàncies, és possible que un administrador o desenvolupador vulgui esborrar manualment la memòria cau. En aquest article explicarem com funciona la memòria cau del sistema de fitxers Linux. A continuació, demostrarem com controlar l’ús de la memòria cau i com esborrar-la. Farem alguns experiments de rendiment senzills per comprovar que la memòria cau funciona com s’esperava i que el procediment d’esborrat i buit de la memòria cau també funciona com s’esperava.

Com funciona la memòria cau del sistema de fitxers Linux

El nucli reserva una certa quantitat de memòria del sistema per emmagatzemar a la memòria cau els accessos al disc del sistema de fitxers per tal de fer un rendiment general més ràpid. La memòria cau de Linux s'anomena Pàgina de memòria cau . La mida de la memòria cau de la pàgina es pot configurar amb els valors predeterminats generosos habilitats per emmagatzemar una gran quantitat de blocs de disc. La mida màxima de la memòria cau i les polítiques de quan desallotjar dades de la memòria cau es poden ajustar amb paràmetres del nucli. L'enfocament de la memòria cau de Linux s'anomena memòria cau de retrocés. Això significa que si les dades s’escriuen al disc, s’escriuen a la memòria a la memòria cau i es marquen com a brutes a la memòria cau fins que es sincronitzen amb el disc. El nucli manté estructures de dades internes per optimitzar quines dades cal desallotjar de la memòria cau quan es necessiti més espai a la memòria cau.







Durant les trucades del sistema de lectura de Linux, el nucli comprovarà si les dades sol·licitades s’emmagatzemen en blocs de dades de la memòria cau, que seria un èxit de la memòria cau i les dades es retornaran des de la memòria cau sense fer cap E / S al sistema de disc. Si es perd un missatge de memòria cau, les dades s'obtindran del sistema d'E / S i la memòria cau s'actualitzarà en funció de les polítiques de memòria cau, ja que és probable que es tornin a sol·licitar aquestes mateixes dades.



Quan s'assoleixin certs llindars d'ús de memòria, les tasques en segon pla començaran a escriure dades brutes al disc per assegurar-se que esborra la memòria cau de memòria. Aquests poden tenir un impacte en el rendiment d'aplicacions que requereixen intensitat de memòria i CPU i requereixen una adaptació per part dels administradors i / o desenvolupadors.



Utilitzant l’ordre Free per veure l’ús de la memòria cau

Podem utilitzar l'ordre lliure des de la línia d'ordres per analitzar la memòria del sistema i la quantitat de memòria assignada a la memòria cau. Vegeu l'ordre següent:





#gratuït -m

El que veiem des del gratuït l'ordre anterior és que hi ha 7,5 GB de RAM en aquest sistema. D’aquests només s’utilitzen 209 MB i 6,5 MB són gratuïts. S'utilitzen 667 MB a la memòria cau de memòria intermèdia. Ara intentem augmentar aquest nombre executant una ordre per generar un fitxer d’1 gigabyte i llegint el fitxer. L'ordre següent generarà aproximadament 100 MB de dades aleatòries i, a continuació, afegirà 10 còpies del fitxer en una sola fitxer_grand .



# dd if = / dev / random of = / root / data_file count = 1400000
# for i a `seq 1 10`; feu ressò de $ i; cat_fitxer_dades >> fitxer_grand; fet

Ara ens assegurarem de llegir aquest fitxer de 1 Gig i, a continuació, comprovarem de nou l’ordre gratuït:

# cat fitxer_grand> / dev / null
# free -m

Podem veure com l’ús de la memòria cau de memòria intermèdia ha passat de 667 a 1735 megabytes, amb un augment d’aproximadament 1 gigabyte en l’ús de la memòria cau de memòria intermèdia.

Comanda Proc Sys VM Drop Caches

El nucli Linux proporciona una interfície per deixar caure la memòria cau. Provem aquestes ordres i veiem l'impacte en la configuració gratuïta.

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

Podem veure més amunt que la majoria de l'assignació de memòria cau de memòria intermèdia es va alliberar amb aquesta ordre.

Verificació experimental que fa funcionar les memòries caigudes

Podem fer una validació del rendiment d’utilitzar la memòria cau per llegir el fitxer? Llegim el fitxer i el tornem a escriure a / dev / null per comprovar el temps que triga a llegir-lo des del disc. Ho cronometrarem amb el temps comandament. Fem aquesta ordre immediatament després d'esborrar la memòria cau amb les ordres anteriors.

La lectura del fitxer va trigar 8,4 segons. Tornem a llegir-lo ara que el fitxer hauria d'estar a la memòria cau del sistema de fitxers i veure el temps que triga ara.

Boom! Només van trigar 2,2 segons en comparació amb 8,4 segons a llegir-lo quan el fitxer no estava a la memòria cau. Per verificar-ho, repetim-ho de nou: esborreu la memòria cau i després llegiu el fitxer dues vegades.

Va funcionar perfectament com s’esperava. 8,5 segons per a la lectura no emmagatzemada a la memòria cau i, 2 segons per a la lectura emmagatzemada a la memòria cau.

Conclusió

La memòria cau de pàgines s'activa automàticament als sistemes Linux i, de manera transparent, augmentarà la E / S mitjançant l'emmagatzematge de les dades utilitzades recentment a la memòria cau. Si voleu esborrar manualment la memòria cau que es pot fer fàcilment enviant una ordre echo al sistema de fitxers / proc indicant al nucli que deixi la memòria cau i alliberi la memòria utilitzada per a la memòria cau. Les instruccions per executar l'ordre es van mostrar més amunt en aquest article i també es va mostrar la validació experimental del comportament de la memòria cau abans i després del rentat.