GNU/Linux >> Belajar Linux >  >> Linux

Mengapa OOM-Killer tidak bisa menghentikan proses yang meminta terlalu banyak?

Pertimbangkan skenario ini:

  • Anda memiliki memori kosong sebesar 4GB.
  • Proses yang salah mengalokasikan 3,999 GB.
  • Anda membuka pengelola tugas untuk menghentikan proses pelarian. Pengelola tugas mengalokasikan 0,002 GB.

Jika proses yang dimatikan adalah proses terakhir yang meminta memori, pengelola tugas Anda akan dimatikan.

Atau:

  • Anda memiliki memori kosong sebesar 4GB.
  • Proses yang salah mengalokasikan 3,999 GB.
  • Anda membuka pengelola tugas untuk menghentikan proses pelarian. Server X mengalokasikan 0,002 GB untuk menangani jendela pengelola tugas.

Sekarang server X Anda terbunuh. Itu tidak menyebabkan masalah; itu hanya "di tempat yang salah pada waktu yang salah". Ini adalah proses pertama yang mengalokasikan lebih banyak memori ketika tidak ada yang tersisa, tetapi itu bukanlah proses yang menggunakan semua memori untuk memulai.


Linux
  1. Linux – Batasi Penggunaan Memori Untuk Proses Linux Tunggal?

  2. Linux – Bagaimana Pembunuh Oom Memutuskan Proses Mana Yang Harus Dibunuh Pertama?

  3. Linux – Apakah Proses Yang Memiliki Terminal Pengendali, Atau Sesi Yang Memiliki Terminal Pengendali?

  1. Perbedaan Kill, Pkill, dan Killall?

  2. Mengapa Garpu Mekanisme Pembuatan Proses Default?

  3. Apa yang mematikan proses saya dan mengapa?

  1. Alat Yang Memungkinkan Pencatatan Penggunaan Memori?

  2. Bagaimana cara membatasi cache yang digunakan dengan menyalin sehingga masih tersedia memori untuk cache lain?

  3. Mengapa saya tidak bisa mematikan proses ini di Linux?