Saat menjalankan aplikasi saya, terkadang saya mendapatkan kesalahan too many files open
.
Menjalankan ulimit -a
laporan bahwa batasnya adalah 1024. Bagaimana cara meningkatkan batas di atas 1024?
Edit
ulimit -n 2048
hasil dalam kesalahan izin.
Jawaban:
Anda selalu dapat mencoba melakukan
ulimit -n 2048
. Ini hanya akan mengatur ulang batas untuk shell Anda saat ini dan jumlah yang Anda tentukan tidak boleh melebihi batas hardSetiap sistem operasi memiliki pengaturan batas keras yang berbeda dalam file konfigurasi. Misalnya, batas file yang sulit dibuka pada Solaris dapat diatur saat boot dari / etc / system.
Pada OS X, data yang sama ini harus ditetapkan di /etc/sysctl.conf.
Di Linux, pengaturan ini sering di /etc/security/limits.conf.
Ada dua macam batasan:
Batas lunak dapat diatur oleh pengguna mana pun sementara batas keras hanya dapat diubah oleh root. Batas adalah properti dari suatu proses. Mereka diwariskan ketika proses anak dibuat sehingga batas seluruh sistem harus ditetapkan selama inisialisasi sistem dalam skrip init dan batas pengguna harus ditetapkan selama login pengguna misalnya dengan menggunakan pam_limits.
Seringkali ada pengaturan default saat mesin melakukan boot. Jadi, meskipun Anda dapat mereset ulimit Anda di shell individu, Anda mungkin menemukan itu mengembalikan ke nilai sebelumnya pada reboot. Anda mungkin ingin grep skrip boot Anda untuk perintah ulimit keberadaan jika Anda ingin mengubah default.
sumber
2048
tetapi tidak4500
mengapa? lihat iniulimit
. Anda harus menentukan apa yang Anda gunakan (mis. WSL, Cygwin).Jika Anda menggunakan Linux dan Anda mendapatkan error izin, Anda akan perlu untuk menaikkan batas diperbolehkan dalam
/etc/limits.conf
atau/etc/security/limits.conf
berkas (di mana file berada tergantung pada distribusi Linux tertentu).Misalnya untuk mengizinkan siapa saja di mesin meningkatkan jumlah file terbuka mereka hingga 10.000, tambahkan baris ke
limits.conf
file.* hard nofile 10000
Kemudian logout dan masuk kembali ke sistem Anda dan Anda seharusnya dapat melakukannya:
ulimit -n 10000
tanpa kesalahan izin.
sumber
root
pengguna. Anda harus menentukanroot hard nofile 10000
apakah Anda ingin menyesuaikanroot
batas.ulimit
dan akhirnya menemukan saya login sebagai root. Itu sebabnya saya terus melihat 1024 diulimit -a
. Saya mengubah perawatan liar, dan menambahkan bagian*
dalamlimits.conf
. Semuanya baik sekarang, (saya menggunakan kunci ssh jangan khawatir: P) - Terima kasih !!!/etc/security/limits.d/
.1) Tambahkan baris berikut ke
/etc/security/limits.conf
lalu masuk sebagai pengguna web
2) Edit dua file berikut untuk pengguna web
tambahkan file .bashrc dan .bash_profile dengan menjalankan
3) Keluar, lalu masuk kembali dan verifikasi bahwa perubahan telah dilakukan dengan benar:
Itu saja dan mereka boom, boom boom.
sumber
Jika beberapa layanan Anda menolak keras, terkadang lebih mudah untuk memasukkan perintah yang sesuai ke skrip init layanan. Misalnya, ketika Apache melaporkan
Mencoba untuk menempatkan
ulimit -s unlimited
ke dalam/etc/init.d/httpd
. Ini tidak memerlukan reboot server.sumber