Atasi “OutOfMemoryError: Java heap space” dan “Could not reserve enough space” di server Minecraft
Tiga masalah berbeda disebut “out of memory”. Jika server tidak mau start dan menyebut object heap, Anda meminta Java memakai RAM lebih banyak daripada yang dimiliki mesin. Jika server berjalan lalu crash dengan OutOfMemoryError, ia membutuhkan lebih dari yang Anda berikan, atau ada yang bocor. Jika hanya muncul “Killed”, sistem operasi yang menghentikannya.
Error mana yang Anda alami?
| Pesan | Artinya |
|---|---|
| Could not reserve enough space for object heap | Saat start: -Xmx lebih besar daripada memori yang tersedia, atau Anda memakai Java 32-bit. |
| java.lang.OutOfMemoryError: Java heap space | Saat berjalan: heap penuh. Server butuh lebih banyak memori, beban lebih ringan, atau ada kebocoran. |
| GC overhead limit exceeded | Java menghabiskan hampir seluruh waktunya membersihkan memori. Penyebabnya sama dengan heap yang penuh. |
| “Killed”, atau exit code 137 | Sistem operasi atau container menghentikan server karena seluruh mesin kehabisan memori. |
Could not reserve enough space for object heap
- Periksa memori yang kosong. Di Linux, jalankan
free -h. Di Windows, buka Task Manager. - Turunkan -Xmx. Java memakai lebih dari sekadar heap, jadi di mesin kecil batasi -Xmx paling banyak sekitar tiga perempat dari RAM. Di server 4 GB, 3G adalah batas atas yang aman.
- Gunakan Java 64-bit. Output
java -versionharus menyebut 64-Bit. Java 32-bit tidak bisa mereservasi heap besar.
java -Xms3G -Xmx3G -jar server.jar --nogui
Atur -Xms sama dengan -Xmx, agar server mereservasi memorinya sekali di awal.
java.lang.OutOfMemoryError: Java heap space
- Beri server lebih banyak memori, jika mesin punya. Lihat berapa RAM yang dibutuhkan server Minecraft untuk ukuran menurut jenis server.
- Kurangi beban. Turunkan
view-distancedansimulation-distancedi server.properties, misalnya ke 8 dan 6. - Cari kebocoran. Pasang plugin atau mod spark, biarkan server berjalan sampai memorinya tinggi, lalu jalankan
/spark heapsummary. Perintah itu mendaftar apa yang memakai memori terbanyak. Class dari satu plugin di urutan teratas menunjuk pelakunya. - Perbarui atau hapus pelakunya. Kebocoran memori sering diperbaiki di versi plugin yang lebih baru. Memberi plugin yang bocor lebih banyak memori hanya menunda crash.
- Restart sesuai jadwal. Restart harian menyembunyikan kebocoran lambat sampai Anda menemukannya. Ini solusi sementara, bukan perbaikan.
“Killed” dan exit code 137
Ini bukan error Java. Di Linux, out-of-memory killer menghentikan proses terbesar saat seluruh mesin kehabisan memori, dan container melakukan hal yang sama pada batas memorinya. Pastikan lewat log kernel:
sudo dmesg | grep -i "killed process"
Untuk memperbaikinya, turunkan -Xmx agar Java beserta semua yang lain di mesin muat di RAM, dan hentikan software lain yang boros memori, seperti database atau server game kedua. File swap kecil berfungsi sebagai jaring pengaman, bukan pengganti RAM.
Cegah agar tidak terulang
- Pilih ukuran heap berdasarkan jenis server dan jumlah pemain, lalu pantau pemakaian nyata dengan spark.
- Pra-generate dunia, agar pembuatan chunk tidak melonjakkan memori saat pemain menjelajah.
- Jaga plugin dan software server tetap mutakhir.
Host server Minecraft Anda di Singapura
Ping rendah untuk pemain di India, Malaysia, dan Indonesia, di core AMD EPYC yang cepat dengan NVMe dan perlindungan DDoS.
