Seperti sistem operasi lainnya, GNU / Linux telah menerapkan manajemen memori efisien dan bahkan lebih dari itu. Tetapi jika setiap proses menggerogoti memori Anda dan Anda ingin menghapus itu, Linux menyediakan cara untuk flush atau membersihkan ram cache.
Cara Hapus Cache di Linux?
Setiap Sistem Linux memiliki tiga opsi untuk menghapus cache tanpa mengganggu proses atau service.
- Clear PageCache only
sync; echo 1 > /proc/sys/vm/drop_caches
- Clear dentries and inodes
sync; echo 2 > /proc/sys/vm/drop_caches
- Clear PageCache, dentries and inodes
sync; echo 3 > /proc/sys/vm/drop_caches
Penjelasan perintah console/terminal di atas.
sync akan melakukan flush pada file system buffer. Command dipisahkan oleh ";" dijalankan secara berurutan. shell menunggu setiap perintah untuk mengakhiri sebelum mengeksekusi perintah berikutnya dalam urutan. Seperti disebutkan dalam dokumentasi kernel, menulis untuk
drop_cache akan membersihkan cache tanpa menghentikan aplikasi/service, perintah
echo melakukan pekerjaan menulis ke file. Jika anda harus menghapus cache disk, perintah pertama adalah yang paling aman di perusahaan dan produksi sebagai
"... echo 1> ...." Akan menghapus pagecache saja. Hal ini tidak dianjurkan untuk menggunakan pilihan ketiga di atas
"... echo 3>" dalam produksi sampai Anda tahu apa yang anda lakukan, karena akan menghapus pagecache, dentries dan inode.
Apakah itu ide yang baik untuk membebaskan Buffer dan Cache di Linux yang dapat digunakan oleh Linux Kernel? Ketika anda menerapkan berbagai pengaturan dan ingin memeriksa, jika benar-benar diterapkan khusus pada I/O, maka anda mungkin perlu menghapus buffer cache. Anda bisa
drop cache seperti yang dijelaskan di atas tanpa me-reboot sistem dan tidak ada downtime yang dibutuhkan. Linux dirancang sedemikian rupa sehingga tampak dalam cache disk sebelum mencari ke disk. Jika menemukan sumber daya dalam cache, maka permintaan tidak mencapai disk. Jika kita membersihkan cache, disk cache akan berkurang dan berguna untuk OS dalam mencari sumber daya pada disk. Selain itu juga akan memperlambat sistem selama beberapa detik saat cache dibersihkan dan setiap sumber daya yang dibutuhkan oleh OS dimuat lagi dalam disk cache.
Sekarang kita akan menciptakan sebuah shell script untuk auto Cache RAM pada setiap hari di jam 2:00 melalui tugas cron scheduler. - Buat file clearcache.sh shell script dan tambahkan baris berikut.
#!/bin/bash
# Note, we are using "echo 3", but it is not recommended in production instead use "echo 1"
echo "echo 3 > /proc/sys/vm/drop_caches"
- Ubah file permission dan beri akses execute
chmod 755 clearcache.sh
Sekarang Anda dapat menjalankan script setiap kali Anda ingin menghapus cache ram. - Sekarang mengatur cron untuk membersihkan RAM Cache setiap hari di jam 2:00. Buka crontab pada console/terminal untuk mengedit.
crontab -e
- Tambahkan di bawah akhir, simpan dan keluar untuk menjalankannya pada jam 02:00 setiap hari.
0 2 * * * /path/to/clearcache.sh
Apakah merupakan ide yang baik untuk auto Cache RAM pada server produksi? Tidak! bukan itu. Pikirkan situasi ketika anda telah menjadwalkan script untuk menghapus cache ram setiap hari di jam 2:00, script ini dijalankan dan flushes cache RAM anda. Satu hari untuk alasan apapun, mungkin lebih dari pengguna sedang online di website anda dan mencari informasi dari server anda dan pada saat yang sama skrip dijadwalkan menjalankan dan membersihkan segala sesuatu dalam cache, sekarang semua pengguna yang mengambil data dari disk ini akan mengakibatkan server crash dan korup database. Jadi jelas ram-cache saja bila diperlukan.
Cara Hapus Swap space di Linux?
Jika Anda ingin menghapus Swap secara manual, Anda perlu menjalankan perintah di bawah ini pada console/terminal.
swapoff -a && swapon -a
Anda juga dapat menambahkan perintah tersebut untuk script cron, setelah memahami semua risiko yang terkait. Sekarang kita akan menggabungkan kedua perintah di atas menjadi satu perintah console/terminal tunggal untuk membuat script yang tepat guna membersihkan RAM Cache and Space Swap.
echo 3 > /proc/sys/vm/drop_caches && swapoff -a && swapon -a && printf '\n%s\n' 'Ram-cache and Swap Cleared'
Setelah pengujian perintah diatas, kita akan menjalankan perintah "free -h" sebelum dan setelah menjalankan script dan memeriksa cache.
Semoga informasi diatas dapat membantu.