Pengantar
Memori (RAM) merupakan salah satu sumber daya paling penting dalam sistem operasi. Setiap aplikasi yang berjalan, mulai dari browser, database, hingga layanan web, membutuhkan memori agar dapat beroperasi dengan baik. Namun, bagaimana jika seluruh memori fisik dan swap hampir habis digunakan?
Pada sistem operasi Linux, kondisi tersebut tidak selalu menyebabkan sistem langsung mengalami crash. Sebaliknya, kernel memiliki mekanisme khusus yang dikenal sebagai Out-Of-Memory (OOM) Killer. Fitur ini bertugas memilih dan menghentikan (kill) proses tertentu agar memori dapat dibebaskan sehingga sistem tetap dapat berjalan.
Meskipun terdengar ekstrem, OOM Killer merupakan bagian penting dari manajemen memori Linux. Tanpa mekanisme ini, sistem berisiko mengalami hang, tidak responsif, atau bahkan gagal beroperasi sepenuhnya ketika kehabisan memori.
Apa Itu Out-Of-Memory (OOM) Killer?
Pengertian OOM Killer
Out-Of-Memory (OOM) Killer adalah mekanisme bawaan kernel Linux yang secara otomatis memilih dan menghentikan proses tertentu ketika sistem mengalami kekurangan memori yang sangat parah (critical memory shortage).
Alih-alih membiarkan seluruh sistem berhenti merespons, kernel akan menentukan proses yang dianggap paling layak dihentikan berdasarkan berbagai faktor, seperti penggunaan memori, prioritas proses, dan nilai OOM Score.
Menurut dokumentasi resmi kernel Linux, OOM Killer dirancang untuk memulihkan kondisi sistem ketika seluruh upaya alokasi memori gagal dilakukan sehingga sistem tetap dapat beroperasi tanpa mengalami kegagalan total (dikutip dari: https://docs.kernel.org/mm/oom.html).
baca juga : Windows Event Log Analysis: Panduan Menganalisis Log Windows untuk Mendeteksi Ancaman Siber
Mengapa OOM Killer Dibutuhkan?
Ketika aplikasi terus mengalokasikan memori tanpa tersedia ruang kosong yang cukup, kernel memiliki beberapa pilihan, seperti:
- Menggunakan swap jika masih tersedia.
- Melakukan memory reclaim.
- Menghapus page cache yang tidak digunakan.
- Menjalankan mekanisme OOM Killer jika seluruh cara sebelumnya gagal.
Tanpa OOM Killer, sistem dapat mengalami kondisi seperti:
- Tidak dapat membuka aplikasi baru.
- Layanan penting berhenti merespons.
- Server mengalami freeze.
- Kernel mengalami kegagalan dalam mengalokasikan memori.
Karena itu, OOM Killer berfungsi sebagai mekanisme perlindungan terakhir (last resort) untuk menjaga stabilitas sistem.
Bagaimana Cara Kerja OOM Killer?
Ketika memori hampir habis, kernel akan melakukan evaluasi terhadap seluruh proses yang sedang berjalan.
Secara umum, alurnya adalah sebagai berikut:
- Kernel mendeteksi bahwa alokasi memori gagal.
- Kernel mencoba membebaskan memori melalui mekanisme internal.
- Jika tetap gagal, OOM Killer mulai mengevaluasi seluruh proses.
- Setiap proses diberikan nilai OOM Score.
- Proses dengan skor tertinggi akan dihentikan.
- Memori yang digunakan proses tersebut dikembalikan ke sistem.
Pendekatan ini memungkinkan sistem tetap berjalan meskipun harus mengorbankan satu atau beberapa proses.
Apa Itu OOM Score?
OOM Killer menggunakan nilai yang disebut OOM Score untuk menentukan proses mana yang akan dihentikan.
Nilai tersebut dipengaruhi oleh beberapa faktor, seperti:
- Jumlah memori yang digunakan.
- Jenis proses.
- Prioritas proses.
- Nilai
oom_score_adj. - Status proses sebagai layanan sistem atau aplikasi pengguna.
Semakin tinggi nilai OOM Score, semakin besar kemungkinan proses tersebut menjadi target OOM Killer.
Memahami oom_score dan oom_score_adj
Linux menyediakan dua parameter penting yang berkaitan dengan OOM Killer.
oom_score
File ini menunjukkan kemungkinan suatu proses menjadi target OOM Killer.
Nilainya dapat dilihat melalui:
cat /proc/<PID>/oom_score
Semakin tinggi nilainya, semakin besar peluang proses tersebut dihentikan.
oom_score_adj
Parameter ini digunakan untuk menambah atau mengurangi prioritas suatu proses terhadap OOM Killer.
Nilainya berada pada rentang:
-1000 hingga 1000
Keterangan:
- -1000 → Hampir tidak akan dipilih oleh OOM Killer.
- 0 → Nilai standar.
- 1000 → Sangat berpeluang dihentikan.
Administrator dapat mengatur nilai ini untuk melindungi layanan penting seperti database atau web server.
baca juga : DNSSEC (DNS Security Extensions): Cara Kerja Teknologi yang Melindungi DNS dari Pemalsuan Data
Contoh Skenario OOM Killer
Misalkan sebuah server memiliki RAM sebesar 8 GB.
Pada saat yang sama berjalan beberapa proses berikut:
| Proses | Penggunaan RAM |
|---|---|
| MySQL | 2 GB |
| Nginx | 500 MB |
| Java Application | 4,5 GB |
| Monitoring Agent | 200 MB |
Ketika aplikasi Java mengalami memory leak dan terus mengonsumsi RAM hingga seluruh memori hampir habis, kernel akan menghitung OOM Score setiap proses.

Karena aplikasi Java menggunakan memori paling besar dan memiliki skor tertinggi, OOM Killer kemungkinan besar akan menghentikan proses tersebut agar layanan lain tetap berjalan.
Cara Melihat Log OOM Killer
Administrator dapat melihat aktivitas OOM Killer menggunakan perintah berikut:
dmesg | grep -i oom
atau
journalctl -k | grep -i oom
Log tersebut biasanya menampilkan informasi seperti:
- Proses yang dihentikan.
- PID proses.
- Penggunaan memori.
- Nilai OOM Score.
- Alasan pemilihan proses.
Informasi ini sangat membantu dalam proses analisis dan pemecahan masalah.
Penyebab OOM Killer Aktif
Beberapa kondisi yang sering memicu OOM Killer antara lain:
- Memory leak pada aplikasi.
- Terlalu banyak aplikasi berjalan secara bersamaan.
- Konfigurasi RAM yang tidak memadai.
- Beban kerja (workload) meningkat drastis.
- Kesalahan konfigurasi container.
- Tidak tersedianya ruang swap.
Mengetahui penyebabnya membantu administrator mengambil langkah pencegahan sebelum masalah kembali terjadi.
OOM Killer pada Docker dan Kubernetes
Pada lingkungan berbasis container seperti Docker dan Kubernetes, OOM Killer juga berperan penting.
Jika sebuah container menggunakan memori melebihi batas (memory limit) yang telah ditentukan, kernel dapat menghentikan proses di dalam container tersebut.
Menurut dokumentasi resmi Kubernetes, kondisi ini biasanya ditandai dengan status OOMKilled, yang menunjukkan bahwa container dihentikan karena melampaui batas penggunaan memori yang diizinkan (dikutip dari: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/).
Karena itu, penentuan resource request dan resource limit menjadi aspek penting dalam pengelolaan aplikasi berbasis container.
Cara Mencegah OOM Killer Sering Aktif
Beberapa langkah yang dapat dilakukan untuk mengurangi risiko OOM Killer antara lain:
Pantau Penggunaan Memori
Gunakan alat seperti:
htoptopfreevmstat
Pemantauan rutin membantu mendeteksi lonjakan penggunaan memori sebelum menjadi masalah.
Gunakan Swap Secukupnya
Swap dapat memberikan ruang tambahan ketika RAM mulai penuh.
Namun, penggunaan swap secara berlebihan juga dapat menurunkan performa sistem.
Atur Memory Limit
Pada Docker maupun Kubernetes, tentukan batas penggunaan memori agar satu aplikasi tidak menghabiskan seluruh sumber daya server.
Periksa Memory Leak
Aplikasi yang mengalami memory leak akan terus menggunakan memori tanpa melepaskannya kembali.
Lakukan profiling secara berkala untuk mengidentifikasi masalah tersebut.
Sesuaikan oom_score_adj
Lindungi layanan penting seperti:
- Database
- Web Server
- DNS Server
- Authentication Service
dengan memberikan nilai oom_score_adj yang lebih rendah sehingga kecil kemungkinan dihentikan oleh OOM Killer.
Kelebihan dan Kekurangan OOM Killer
Kelebihan
- Mencegah sistem mengalami freeze total.
- Menjaga layanan lain tetap berjalan.
- Bekerja secara otomatis.
- Membantu menjaga stabilitas kernel.
Kekurangan
- Dapat menghentikan aplikasi penting jika tidak dikonfigurasi dengan baik.
- Berpotensi menyebabkan hilangnya data yang belum tersimpan.
- Tidak menyelesaikan akar penyebab penggunaan memori yang berlebihan.
Oleh karena itu, OOM Killer sebaiknya dipandang sebagai mekanisme darurat, bukan solusi utama terhadap masalah memori.
baca juga : Salting & Peppering: Dua Teknik Penting untuk Memperkuat Keamanan Password
Kesimpulan
Out-Of-Memory (OOM) Killer merupakan mekanisme penting dalam kernel Linux yang dirancang untuk melindungi sistem ketika mengalami kekurangan memori. Dengan mengevaluasi setiap proses berdasarkan OOM Score, kernel dapat memilih proses yang paling tepat untuk dihentikan sehingga sistem tetap dapat beroperasi tanpa mengalami crash secara menyeluruh.
Meskipun sangat berguna, seringnya OOM Killer aktif biasanya menjadi indikator adanya masalah lain, seperti memory leak, konfigurasi sumber daya yang kurang tepat, atau kapasitas memori yang tidak memadai. Oleh karena itu, administrator sistem perlu melakukan pemantauan penggunaan memori, mengatur batas sumber daya aplikasi, serta mengoptimalkan konfigurasi server agar mekanisme ini hanya bekerja pada kondisi yang benar-benar darurat.










1 Comment
Cloud Workload Protection Platform (CWPP): Solusi Keamanan Modern untuk Melindungi Workload di Lingkungan Cloud - buletinsiber.com
2 weeks ago[…] baca juga : Out-Of-Memory (OOM) Killer: Mekanisme Linux yang Mencegah Sistem Crash Akibat Kehabisan Memori […]