Cara Menghapus Cache di Linux

How Clear Cache Linux



Cache sistem fail linux (Cache Halaman) digunakan untuk membuat operasi IO lebih cepat. Dalam keadaan tertentu pentadbir atau pembangun mungkin ingin membersihkan cache secara manual. Dalam artikel ini kita akan menerangkan bagaimana cache Sistem Fail Linux berfungsi. Kemudian kami akan menunjukkan cara memantau penggunaan cache dan bagaimana membersihkan cache. Kami akan melakukan beberapa eksperimen prestasi sederhana untuk memastikan cache berfungsi seperti yang diharapkan dan bahawa prosedur cache flush and clear juga berfungsi seperti yang diharapkan.

Bagaimana Cache Sistem Fail Linux Berfungsi

Kernel menyimpan sejumlah memori sistem untuk membuat cache akses ke sistem fail untuk membuat prestasi keseluruhan lebih cepat. Cache di linux dipanggil Halaman Cache . Ukuran cache halaman dapat dikonfigurasi dengan lalai yang besar untuk membolehkan menyimpan sejumlah besar blok cakera. Ukuran maksimum cache dan dasar kapan mengusir data dari cache boleh disesuaikan dengan parameter kernel. Pendekatan cache linux disebut sebagai cache tulis balik. Ini bermaksud jika data ditulis ke disk, ia ditulis ke memori ke dalam cache dan ditandai sebagai kotor di dalam cache sehingga diselaraskan ke cakera. Kernel mengekalkan struktur data dalaman untuk mengoptimumkan data mana yang akan diusir dari cache apabila lebih banyak ruang diperlukan dalam cache.







Semasa panggilan sistem membaca Linux, kernel akan memeriksa apakah data yang diminta disimpan dalam blok data dalam cache, itu akan menjadi hit cache yang berjaya dan data akan dikembalikan dari cache tanpa melakukan IO ke sistem disk. Untuk cache, data akan diambil dari sistem IO dan cache dikemas kini berdasarkan dasar cache kerana data yang sama ini mungkin akan diminta lagi.



Apabila ambang tertentu penggunaan memori tercapai, tugas latar belakang akan mula menulis data kotor ke disk untuk memastikan ia membersihkan cache memori. Ini dapat mempengaruhi prestasi memori dan aplikasi intensif CPU dan memerlukan penalaan oleh pentadbir dan atau pembangun.



Menggunakan perintah Percuma untuk melihat Penggunaan Cache

Kita dapat menggunakan perintah bebas dari baris perintah untuk menganalisis memori sistem dan jumlah memori yang diperuntukkan untuk caching. Lihat arahan di bawah:





#percuma -m

Apa yang kita lihat dari percuma arahan di atas ialah terdapat 7,5 GB RAM pada sistem ini. Dari jumlah ini hanya 209 MB digunakan dan 6.5 MB percuma. 667 MB digunakan dalam cache penyangga. Sekarang mari kita cuba menambah bilangan itu dengan menjalankan perintah untuk menghasilkan fail 1 Gigabyte dan membaca failnya. Perintah di bawah ini akan menghasilkan kira-kira 100MB data rawak dan kemudian menambahkan 10 salinan fail menjadi satu besar_file .



# dd if = / dev / random of = / root / data_file count = 1400000
# untuk i di `seq 1 10`; gema $ i; data_file kucing >> large_file; selesai

Sekarang kita akan memastikan untuk membaca fail 1 Gig ini dan kemudian periksa arahan percuma sekali lagi:

# cat large_file> / dev / null
# percuma -m

Kita dapat melihat penggunaan buffer cache meningkat dari 667 menjadi 1735 Megabyte, peningkatan sekitar 1 Gigabyte dalam penggunaan buffer cache.

Perintah Proc Sys VM Drop Caches

Kernel linux menyediakan antara muka untuk melepaskan cache mari kita mencuba perintah ini dan melihat kesannya pada tetapan percuma.

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

Kita dapat melihat di atas bahawa sebahagian besar peruntukan cache penyangga dibebaskan dengan perintah ini.

Pengesahan Eksperimen bahawa Drop Caches Berfungsi

Bolehkah kita melakukan pengesahan prestasi menggunakan cache untuk membaca fail? Mari baca fail dan tulis semula ke / dev / null untuk menguji berapa lama masa untuk membaca fail dari cakera. Kami akan menghabiskan masa dengan masa arahan. Kami melakukan perintah ini sebaik sahaja membersihkan cache dengan arahan di atas.

Memerlukan 8.4 saat untuk membaca fail tersebut. Mari kita baca lagi sekarang bahawa fail tersebut harus berada dalam cache sistem fail dan lihat berapa lama masa yang diperlukan.

Boom! Hanya memerlukan 2,2 saat berbanding 8,4 saat untuk membacanya ketika fail tidak disimpan dalam cache. Untuk mengesahkan mari kita ulangi ini lagi dengan terlebih dahulu membersihkan cache dan kemudian membaca fail 2 kali.

Ia berfungsi dengan sempurna seperti yang diharapkan. 8.5 saat untuk bacaan tanpa cache dan .2 saat untuk bacaan cache.

Kesimpulannya

Cache halaman diaktifkan secara automatik pada sistem Linux dan secara transparan akan menjadikan IO lebih pantas dengan menyimpan data yang baru digunakan dalam cache. Sekiranya anda ingin membersihkan cache secara manual yang dapat dilakukan dengan mudah dengan mengirim perintah gema ke sistem file / proc yang menunjukkan ke kernel untuk menjatuhkan cache dan membebaskan memori yang digunakan untuk cache. Arahan untuk menjalankan perintah ditunjukkan di atas dalam artikel ini dan pengesahan eksperimen tingkah laku cache sebelum dan selepas pembilasan juga ditunjukkan.