Apa yang akan dilakukan sistem dengan 20% sisanya?
Kernel akan menggunakan memori fisik yang tersisa untuk keperluannya sendiri (struktur internal, tabel, buffer, cache, apa pun). Pengaturan overcommitment memori menangani reservasi memori virtual aplikasi userland, kernel tidak menggunakan memori virtual tetapi fisik.
Mengapa parameter ini diperlukan di tempat pertama?
The overcommit_ratio
parameter adalah pilihan implementasi yang dirancang untuk mencegah aplikasi untuk cadangan memori lebih virtual dari apa yang cukup akan tersedia bagi mereka di masa depan, yaitu ketika mereka benar-benar mengakses memori (atau setidaknya mencoba untuk).
Pengaturan overcommit_ratio
ke 50% telah dianggap sebagai nilai default yang wajar oleh pengembang kernel Linux. Ini mengasumsikan kernel tidak perlu menggunakan lebih dari 50% RAM fisik. Jarak tempuh Anda mungkin beragam, alasannya adalah merdu.
Mengapa saya tidak selalu mengaturnya ke 100%?
Menyetelnya menjadi 100% (atau nilai "terlalu tinggi") tidak dapat diandalkan menonaktifkan komitmen berlebihan karena Anda tidak dapat mengasumsikan kernel akan menggunakan 0% (atau terlalu sedikit) RAM.
Ini tidak akan mencegah aplikasi crash karena kernel mungkin akan melakukan preempt pula semua memori fisik yang diminta.