Ide dasar di sini mungkin tidak terlalu buruk (hanya sangat naif dan menyesatkan): Mungkin ada file yang di-cache, yang sangat tidak mungkin diakses dalam waktu dekat, misalnya file log. Ini ram "memakan", yang nantinya harus dibebaskan ketika diperlukan oleh OS dengan satu atau lain cara.
Bergantung pada pengaturan swappiness Anda, pola akses file, pola alokasi memori dan banyak hal yang tidak dapat diprediksi, mungkin terjadi ketika Anda tidak membebaskan cache ini, mereka kemudian akan dipaksa untuk digunakan kembali, yang membutuhkan waktu sedikit lebih lama daripada mengalokasikan memori dari kumpulan memori yang tidak digunakan. Dalam kasus terburuk pengaturan swappiness dari linux akan menyebabkan memori program untuk ditukar, karena linux berpikir file-file itu mungkin lebih mungkin digunakan dalam waktu dekat daripada memori program.
Di lingkungan saya, linux menebak cukup sering salah, dan pada awal sebagian besar bursa saham eropa (sekitar 0900 waktu setempat) server akan mulai melakukan hal-hal yang mereka lakukan hanya sekali sehari, perlu menukar memori yang sebelumnya ditukar karena menulis file log, mengompresi mereka, menyalinnya dll. sedang mengisi cache ke titik di mana hal-hal harus ditukar.
Tetapi apakah menjatuhkan cache solusi untuk masalah ini? jelas tidak. Apa yang menjadi solusinya di sini adalah memberi tahu linux apa yang tidak diketahuinya: bahwa file-file ini kemungkinan tidak akan digunakan lagi. Ini dapat dilakukan oleh aplikasi penulisan menggunakan hal-hal seperti posix_fadvise()
atau menggunakan alat garis cmd seperti vmtouch
(yang juga dapat digunakan untuk melihat hal-hal serta file cache).
Dengan begitu Anda dapat menghapus data yang tidak diperlukan lagi dari cache, dan menyimpan hal-hal yang harus di-cache, karena ketika Anda menjatuhkan semua cache, banyak hal harus dibaca ulang dari disk. Dan itu pada saat yang paling buruk: ketika dibutuhkan; menyebabkan keterlambatan dalam aplikasi Anda yang terlihat dan seringkali tidak dapat diterima.
Yang harus Anda miliki adalah sistem yang memantau pola penggunaan memori Anda (misalnya jika ada pertukaran) dan kemudian menganalisisnya, dan bertindak sesuai dengan itu. Solusinya mungkin dengan mengusir beberapa file besar di akhir hari menggunakan vtouch; mungkin juga menambahkan lebih banyak ram karena penggunaan puncak harian server hanya itu.