GNU/Linux >> Belajar Linux >  >> Linux

Cent OS:Bagaimana cara mematikan atau mengurangi overcommitment memori, dan apakah aman melakukannya?

Solusi 1:

Overcommit memori dapat dinonaktifkan oleh vm.overcommit_memory=2

0 adalah mode default, di mana kernel secara heuristik menentukan alokasi dengan menghitung memori bebas dibandingkan dengan permintaan alokasi yang dibuat. Dan menyetelnya ke 1 mengaktifkan mode sihir, di mana kernel selalu mengiklankan bahwa ia memiliki memori bebas yang cukup untuk alokasi apa pun. Mengatur ke 2, berarti bahwa proses hanya dapat mengalokasikan hingga jumlah yang dapat dikonfigurasi (overcommit_ratio ) dari RAM dan akan mulai mendapatkan kegagalan alokasi atau pesan OOM saat melampaui jumlah tersebut.

Apakah aman untuk melakukannya, tidak. Saya belum melihat kasus penggunaan yang tepat di mana menonaktifkan overcommit memori benar-benar membantu, kecuali jika Anda 100% yakin dengan beban kerja dan kapasitas perangkat keras. Jika Anda tertarik, instal kernel-docs paket dan pergi ke /Documentation/sysctl/vm.txt untuk membaca lebih lanjut, atau membacanya secara online.

Jika Anda menyetel vm.overcommit_memory=2 maka itu akan melakukan overcommit hingga persentase RAM fisik yang dikonfigurasi di vm.overcommit_ratio (standarnya adalah 50%).

echo 0/1/2 > /proc/sys/vm/overcommit_memory 

Ini tidak akan selamat dari reboot. Untuk kegigihan, letakkan ini di /etc/sysctl.conf berkas:

vm.overcommit_memory=X

dan jalankan sysctl -p . Tidak perlu memulai ulang.

Solusi 2:

Pernyataan yang benar-benar tidak memenuhi syarat:Menonaktifkan overcommit memori jelas "lebih aman" daripada mengaktifkannya.

$customer telah menyetelnya di beberapa ratus server web dan ini sangat membantu mengatasi masalah stabilitas. Bahkan ada cek Nagios yang mengeluarkan suara sangat keras jika TIDAK pernah dinonaktifkan.

Di sisi lain, orang mungkin tidak menganggap "aman" membuat proses mereka keluar dari memori ketika mereka hanya ingin melakukan terlalu banyak ram kecil dan tidak akan pernah benar-benar menggunakannya. (yaitu SAP akan menjadi contoh yang sangat bagus)

Jadi, Anda kembali melihat apakah ini memperbaiki keadaan untuk Anda. Karena Anda sudah memeriksanya untuk menghilangkan masalah terkait - saya rasa ini mungkin membantu Anda.

(Saya tahu saya akan mengambil risiko downvote oleh orang pemarah)

Solusi 3:

Saya setuju bahwa menonaktifkan overcommit lebih aman daripada mengaktifkannya dalam beberapa keadaan. Jika server hanya menjalankan beberapa pekerjaan memori besar (seperti simulasi sirkuit dalam kasus saya), jauh lebih aman untuk menolak aplikasi permintaan memori di muka daripada menunggu acara OOM (yang pasti akan segera menyusul) Cukup sering kita melihat server mengalami masalah setelah pembunuh OOM melakukan tugasnya.


Linux
  1. Cara Menghidupkan Dan Mematikan Raspberry Pi [Tip Pemula Mutlak]

  2. Cara Menemukan Proses Berjalan Teratas berdasarkan Memori dan Penggunaan CPU

  3. Cara mematikan word-wrap in less

  1. Bagaimana cara mematikan layar dengan pintasan di Linux?

  2. Cara mematikan manajemen daya nirkabel secara permanen

  3. Bagaimana cara mematikan bunyi bip di terminal di Linux?

  1. Cara Menghapus Buffer Memori dan Cache di Linux

  2. Bagaimana Cara Mematikan Hard Drive Di Ubuntu?

  3. Cara Memeriksa Ukuran Total RAM dan Penggunaan Memori di Linux