Cara Menghapus Cache di Linux

How Clear Cache Linux

Cache sistem file linux (Page Cache) digunakan untuk membuat operasi IO lebih cepat. Dalam keadaan tertentu, administrator atau pengembang mungkin ingin mengosongkan cache secara manual. Pada artikel ini kami akan menjelaskan cara kerja cache Sistem File Linux. Kemudian kami akan menunjukkan cara memantau penggunaan cache dan cara menghapus cache. Kami akan melakukan beberapa eksperimen kinerja sederhana untuk memverifikasi cache berfungsi seperti yang diharapkan dan bahwa prosedur pembersihan dan pembersihan cache juga berfungsi seperti yang diharapkan.

Cara Kerja Cache Sistem File Linux

Kernel mencadangkan sejumlah memori sistem untuk caching akses disk sistem file untuk membuat kinerja keseluruhan lebih cepat. Cache di linux disebut Halaman Cache . Ukuran cache halaman dapat dikonfigurasi dengan default besar yang diaktifkan untuk menyimpan sejumlah besar blok disk. Ukuran maksimum cache dan kebijakan kapan harus mengeluarkan data dari cache dapat disesuaikan dengan parameter kernel. Pendekatan cache linux disebut cache write-back. Ini berarti jika data ditulis ke disk, itu ditulis ke memori ke dalam cache dan ditandai sebagai kotor di cache sampai disinkronkan ke disk. Kernel memelihara struktur data internal untuk mengoptimalkan data mana yang akan dikeluarkan dari cache ketika lebih banyak ruang diperlukan dalam cache.



Selama panggilan sistem baca Linux, kernel akan memeriksa apakah data yang diminta disimpan dalam blok data dalam cache, yang akan menjadi hit cache yang berhasil dan data akan dikembalikan dari cache tanpa melakukan IO apa pun ke sistem disk. Untuk cache miss, data akan diambil dari sistem IO dan cache diperbarui berdasarkan kebijakan caching karena data yang sama ini kemungkinan akan diminta lagi.



Ketika ambang batas tertentu dari penggunaan memori tercapai, tugas latar belakang akan mulai menulis data kotor ke disk untuk memastikannya membersihkan cache memori. Ini dapat berdampak pada kinerja aplikasi intensif memori dan CPU dan memerlukan penyetelan oleh administrator dan atau pengembang.



Menggunakan perintah Gratis untuk melihat Penggunaan Cache

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

#Gratis -M

Apa yang kita lihat dari Gratis perintah di atas adalah bahwa ada 7,5 GB RAM pada sistem ini. Dari jumlah tersebut hanya 209 MB yang digunakan dan 6,5 MB gratis. 667 MB digunakan dalam cache buffer. Sekarang mari kita coba untuk meningkatkan angka tersebut dengan menjalankan perintah untuk menghasilkan file sebesar 1 Gigabyte dan membaca file tersebut. Perintah di bawah ini akan menghasilkan sekitar 100MB data acak dan kemudian menambahkan 10 salinan file menjadi satu file_besar .



# dd if=/dev/random of=/root/data_file count=1400000
# untuk i di `seq 1 10`; lakukan echo $i; cat data_file >> file_besar; selesai

Sekarang kita akan pastikan untuk membaca file 1 Gig ini dan kemudian periksa kembali perintah gratisnya:

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

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

Perintah Proc Sys VM Drop Cache

Kernel linux menyediakan antarmuka untuk menjatuhkan cache, mari kita coba perintah ini dan lihat dampaknya pada pengaturan gratis.

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

Kita dapat melihat di atas bahwa sebagian besar alokasi cache buffer dibebaskan dengan perintah ini.

Verifikasi Eksperimental bahwa Drop Cache Berfungsi

Bisakah kita melakukan validasi kinerja menggunakan cache untuk membaca file? Mari baca file dan tulis kembali ke /dev/null untuk menguji berapa lama waktu yang dibutuhkan untuk membaca file dari disk. Kami akan mengatur waktu dengan waktu memerintah. Kami melakukan perintah ini segera setelah membersihkan cache dengan perintah di atas.

Butuh 8,4 detik untuk membaca file. Mari kita baca lagi sekarang bahwa file tersebut harus berada di cache sistem file dan lihat berapa lama sekarang.

Ledakan! Hanya butuh 0,2 detik dibandingkan dengan 8,4 detik untuk membacanya saat file tidak di-cache. Untuk memverifikasi mari kita ulangi ini lagi dengan terlebih dahulu membersihkan cache dan kemudian membaca file 2 kali.

Itu bekerja dengan sempurna seperti yang diharapkan. 8,5 detik untuk pembacaan yang tidak di-cache dan .2 detik untuk pembacaan yang di-cache.

Kesimpulan

Cache halaman secara otomatis diaktifkan pada sistem Linux dan secara transparan akan membuat IO lebih cepat dengan menyimpan data yang baru saja digunakan dalam cache. Jika Anda ingin mengosongkan cache secara manual, itu dapat dilakukan dengan mudah dengan mengirimkan perintah echo ke sistem file /proc yang menunjukkan ke kernel untuk menghapus cache dan mengosongkan memori yang digunakan untuk cache. Petunjuk untuk menjalankan perintah ditampilkan di atas dalam artikel ini dan validasi eksperimental perilaku cache sebelum dan sesudah pembilasan juga ditampilkan.