Memori overcommit Linux

12

Saya telah melihat ke overcommitting memori di Linux menggunakan /proc/sys/vm/overcommit_memory, dan saya telah membaca beberapa artikel yang tidak mengatakan hal yang sama.

Doc ini , di bawah judul "Pergi ke arah yang salah", selanjutnya mengatakan, "nilai 1: jangan terlalu berkomitmen, dan 0 (default): jangan", tetapi kemudian dalam beberapa baris berikutnya, ia menyebutkan, di antara yang serupa hal-hal, bahwa ini sebenarnya tidak benar dan bahwa 0 berarti "tebak tentang berapa banyak komitmen berlebihan yang masuk akal". Itu berarti bahwa overcommit memori tidak dinonaktifkan menggunakan nilai 0, kan?

Ia juga mengatakan bahwa 1 menunjukkan "tidak pernah menolak malloc ()", dengan 2 artinya "lebih tepat tentang overcommit - tidak pernah melakukan ruang alamat virtual yang lebih besar dari ruang swap ditambah fraksi overcommit_ratio dari memori fisik."

Majalah Red Hat , di sisi lain menyatakan, "jika nilainya 0, maka kernel memeriksa untuk menentukan apakah ada cukup memori yang bebas untuk mengabulkan permintaan memori ke panggilan malloc dari suatu aplikasi. Jika ada cukup memori, maka permintaan dikabulkan. Kalau tidak, ditolak dan kode kesalahan dikembalikan ke aplikasi. " Ini terdengar persis seperti menonaktifkan komitmen berlebihan.

"Jika nilainya diatur ke 1, maka kernel memberikan alokasi di atas jumlah RAM fisik dan swap dalam sistem seperti yang didefinisikan oleh nilai overcommit_ratio .... Jika pengaturan dalam file ini adalah 2, kernel memungkinkan semua alokasi memori , terlepas dari kondisi alokasi memori saat ini. " Dalam hal nilai 1 dan 2, itu kebalikan dari apa yang dikatakan dokumen sebelumnya, kan?

Adakah yang tahu apa yang sebenarnya benar, dan jika mungkin untuk 'menonaktifkan' komitmen berlebihan?

Doddy
sumber
Lupa yang ini! Maaf soal itu.
Doddy

Jawaban: