Saya sepertinya tidak bisa meningkatkan nofile
batas untuk pengguna non-root di Ubuntu 14.04, meskipun mengikuti setiap jawaban StackExchange terkait dengan masalah ini. Sejauh ini saya punya:
$ cat /etc/security/limits.d/custom.conf
@www-data hard nofile 50000
@www-data soft nofile 50000
# even tried specifying the username directly:
myuser hard nofile 50000
myuser soft nofile 50000
$ grep 'limits' /etc/pam.d/common-session*
/etc/pam.d/common-session:session required pam_limits.so
/etc/pam.d/common-session-noninteractive:session required pam_limits.so
$ cat /proc/sys/fs/file-max
101232
Reboot, login, dan:
$ ulimit -n 4097
-bash: ulimit: open files: cannot modify limit: Operation not permitted
Ada masih entah bagaimana tampaknya menjadi batas 4096 max untuk pengguna non-root.
Jawaban:
Menggunakan Ubuntu 14.04 saya mendapat batas keras yang dijelaskan:
Saya bisa menurunkannya menggunakan ulimit, tetapi tidak menambahnya, seperti pertanyaan yang menggambarkannya. Seperti yang dijelaskan dalam panduan ulimit:
Jadi saya mencoba menetapkan batas yang lebih tinggi
/etc/security/limits.conf
seperti ini:dan info masuk baru seperti
ssh localhost -l user
memberi saya batas baru:Semoga ini bekerja untuk Anda juga.
sumber
/etc/security/limits*
tidak dibaca oleh mekanisme login Anda - karena alasan yang belum diketahui. 2. Batas keras Anda ditetapkan ke 4096 di tempat lain, dan "hanya root yang dapat meningkat ...". Anda mungkin memeriksa profil Anda seperti.bashrc
(tergantung pada shell Anda), atau Anda mungkin memeriksa/etc
tempat lain, di mana batas mungkin ditetapkan, sepertifind /etc | grep -e ulimit -e 4096 -e nofile
. BTW: apakah Anda mencoba ssh? Dan: sudahkah Anda berubah/etc/ssh/sshd.conf
untuk menghindari PAM karena suatu alasan?/etc/security/limits*
- Anda mungkin mencoba mengaktifkan PAM hanya untuk memeriksa ini. Saya akan mencoba menonaktifkan PAM untuk melihat, apa bedanya dan akan melaporkan hasilnya. --- Iya! itu dia! Dengan PAM dinonaktifkan batas saya adalah 4096, juga, meskipun diatur ke 9999 in/etc/security/limits.conf
.Artikel ini , saya pikir membahas masalah Anda.
Pada dasarnya Anda harus menggunakan perintah ulimit untuk meningkatkan sumber daya yang tersedia.
Sebagai contoh:
Gunakan perintah perintah berikut untuk menampilkan jumlah maksimum deskriptor file terbuka:
Untuk melihat nilai keras dan lunak, keluarkan perintah sebagai berikut:
Untuk melihat nilai keras dan lunak untuk pengguna httpd atau oracle, jalankan perintah sebagai berikut:
Untuk memperbaiki jumlah file maksimum, Anda dapat meningkatkan jumlah maksimum file terbuka dengan menetapkan nilai baru dalam variabel kernel / proc / sys / fs / file-max sebagai berikut (login sebagai root):
Perintah di atas memaksa batas hingga 100000 file. Anda perlu mengedit
/etc/sysctl.conf
file dan meletakkan baris berikut sehingga setelah reboot pengaturan akan tetap seperti apa adanya. Untuk melakukan itu, tambahkan direktif konfigurasi sebagai berikut:Simpan dan tutup file. Pengguna harus keluar dan masuk lagi untuk perubahan yang berlaku atau cukup ketik perintah berikut:
Verifikasi pengaturan Anda dengan perintah:
atau:
Prosedur di atas menetapkan batas deskriptor file sistem (FD) seluruh sistem, namun Anda dapat membatasi
httpd
(atau pengguna lain) pengguna untuk batas tertentu dengan mengedit/etc/security/limits.conf
file dengan mengedit/etc/security/limits.conf
dan menetapkan batas-batas sebagai berikut:Kemudian periksa dengan:
Jika Anda memiliki masalah pada distribusi Linux lain, periksa
/etc/pam.d/login
dan pastikan Anda telahpam_limits.so
diaktifkan, missumber
Jika ini adalah Layanan, Anda dapat mencoba mengatur batas dalam
/etc/systemd/system/{ServiceName}.service
tambahLimitNOFILE=65536
sumber