GNU/Linux >> Belajar Linux >  >> Linux

-bash:fork:Tidak dapat mengalokasikan memori

Saya juga menghadapi masalah ini dengan desktop Ubuntu 14.04 saya.

 free -m

Bahkan perintah dasar ini menunjukkan Tidak dapat mengalokasikan kesalahan memori. Saat menyelidiki, ditemukan bahwa sistem menggunakan semua memori untuk Caching dan tidak mengosongkan memori. Ini disebut Cache Ballooning dan menyelesaikannya dengan membersihkan cache.


Dalam kasus saya, OS kehabisan PID dan bukan memori, pesan kesalahannya sama.

Nilai default nomor PID maks adalah 32768, untuk melihat nilainya, jalankan

cat  /proc/sys/kernel/pid_max

Untuk mengubah nomor pid maks, jalankan

echo 100000 > /proc/sys/kernel/pid_max

Dalam skenario saya, akar penyebabnya adalah bahwa satu proses Java menghasilkan 18k+ utas (dalam kernel linux, utas pada dasarnya adalah sebuah proses), untuk mengetahui jumlah utas dari setiap proses, jalankan

ps -eo nlwp,pid,args --sort nlwp

Linux
  1. Penggunaan Memori Linux

  2. Grep:Memori Habis?

  3. Linux – Mendapatkan Informasi Tentang Penggunaan Memori Proses Dari /proc/pid/smaps?

  1. Proses Yang Memiliki Pid 0?

  2. "mlock gagal:Tidak dapat mengalokasikan memori" kesalahan perintah lvcreate di CentOS/RHEL 7

  3. “systemd-udevd:Cannot Allocate Memory” dan “A start job is running for dev-mapper-\x2droot.device” – Masalah booting CentOS/RHEL 7

  1. Apa itu ioremap()

  2. Secara khusus, bagaimana fork() menangani memori yang dialokasikan secara dinamis dari malloc() di Linux?

  3. Jenkins aktif (keluar)