Ketika menjalankan aplikasi saya kadang-kadang saya mendapatkan error tentang terlalu banyak file yang terbuka
.
Menjalankan `ulimit -sebuah laporan yang membatasi adalah 1024. Bagaimana cara meningkatkan batas atas 1024?
Edit
ulimit -n 2048
hasil dalam izin kesalahan.
Anda selalu bisa mencoba melakukan ulimit -n 2048
. Ini hanya akan mengatur ulang batas untuk anda saat ini shell dan jumlah yang anda tentukan harus tidak melebihi batas keras
Masing-masing sistem operasi memiliki batas keras setup dalam file konfigurasi. Misalnya, hard open file limit pada Solaris dapat di set boot dari /etc/sistem.
set rlim_fd_max = 166384
set rlim_fd_cur = 8192
Pada OS X, ini data yang sama harus terletak di /etc/sysctl.conf.
kern.maxfilesperproc=166384
kern.maxfiles=8192
Di bawah Linux, pengaturan ini sering di /etc/security/limits.conf.
Ada dua macam batas-batas:
Lembut batas yang bisa diatur oleh pengguna, sementara batas keras yang berubah-ubah hanya oleh root. Batas adalah properti dari sebuah proses. Mereka mewarisi ketika anak proses ini dibuat agar sistem-batas yang luas harus diatur selama inisialisasi sistem di init script dan user-batas yang harus ditetapkan selama user login misalnya dengan menggunakan pam_limits.
Sering ada default diatur ketika mesin boots. Jadi, meskipun anda dapat me-reset default pada individu shell, anda mungkin menemukan bahwa itu me-reset kembali ke nilai sebelumnya di reboot. Anda mungkin ingin grep anda boot script untuk adanya perintah ulimit jika anda ingin mengubah default.
Jika anda menggunakan Linux dan anda mendapat izin kesalahan, anda akan perlu untuk menaikkan batas yang diizinkan di /etc/batas.conf atau/etc/security/limits.conf
file (jika file ini terletak tergantung pada spesifik distribusi Linux).
Misalnya untuk memungkinkan siapa pun pada mesin untuk meningkatkan jumlah mereka membuka file hingga 10000 tambahkan baris ke batas.conf
file.
* hard nofile 10000
Kemudian logout dan login kembali ke sistem anda dan anda harus mampu melakukan:
ulimit -n 10000
tanpa izin kesalahan.
/etc/security/limits.conf
webuser hard nofile 64000
kemudian login sebagai webuser
su - webuser
append .bashrc dan .bash_profile file dengan menjalankan
echo "ulimit -n 64000" >> .bashrc ; echo "ulimit -n 64000" >> .bash_profile
$ ulimit -a | grep open
open files (-n) 64000
Thats itu dan mereka boom, boom boom.
Jika beberapa dari anda jasa balking ke ulimits, it's kadang-kadang lebih mudah untuk menempatkan sesuai perintah ke dalam layanan's init-script. Misalnya, ketika Apache adalah pelaporan
[waspada] (11)Sumber daya yang tidak tersedia untuk sementara: apr_thread_create: tidak dapat membuat thread pekerja
Cobalah untuk menempatkan ulimit -s unlimited
ke /etc/init.d/httpd
. Ini tidak memerlukan reboot server.