GNU/Linux >> Belajar Linux >  >> Linux

fork:coba lagi:Sumber daya untuk sementara tidak tersedia

Kemungkinan lain adalah terlalu banyak utas. Kami baru saja menemukan pesan kesalahan ini saat menjalankan test harness terhadap aplikasi yang menggunakan kumpulan utas. Kami menggunakan

watch -n 5 -d "ps -eL <java_pid> | wc -l"

untuk melihat jumlah berkelanjutan dari utas asli Linux yang berjalan dalam ID proses Java yang diberikan. Setelah mencapai sekitar 1.000 (untuk kami--YMMV), kami mulai menerima pesan kesalahan yang Anda sebutkan.


Ini biasanya disebabkan oleh kehabisan deskriptor file.

Ada batas deskriptor file total sistem, apa yang Anda dapatkan dari perintah:

sysctl fs.file-nr

Ini mengembalikan jumlah deskriptor file:

<in_use> <unused_but_allocated> <maximum>

Untuk mengetahui batas deskriptor file pengguna, jalankan perintah:

sudo su - <username>
ulimit -Hn

Untuk mengetahui berapa banyak deskriptor file yang digunakan oleh pengguna, jalankan perintah:

sudo lsof -u <username> 2>/dev/null | wc -l

Jadi sekarang jika Anda mengalami masalah batas deskriptor file sistem, Anda perlu mengedit file /etc/sysctl.conf Anda dan menambahkan, atau memodifikasinya yang sudah ada, satu baris dengan fs.file-max dan menyetelnya ke nilai besar cukup untuk menangani jumlah deskriptor file yang Anda butuhkan dan reboot.

fs.file-max = 204708

Linux
  1. Bagaimana cara memperbaiki su USER Fails Dengan su:tidak dapat membuat proses anak:Sumber daya tidak tersedia untuk sementara Kesalahan di CloudLinux?

  2. Pertanyaan Wawancara Linux :Buka File / Buka Deskriptor File

  3. Cegah pewarisan deskriptor file selama fork Linux

  1. Utas dan deskriptor file

  2. Mendapatkan hitungan deskriptor file yang digunakan saat ini dari kode C

  3. Linux ssh bash fork coba lagi:tidak ada proses anak

  1. Penunjuk file C berubah setelah fork dan (gagal) exec

  2. cp -L vs cp -H

  3. Untuk sementara abaikan file `~/.ssh/known_hosts` saya?