Ini terjadi pada Ubuntu Release 12.04 (tepat) 64-bit Kernel Linux 3.2.0-25-virtual
Saya mencoba meningkatkan jumlah file terbuka yang diizinkan untuk pengguna. Ini untuk aplikasi java gerhana saya di mana batas saat ini 1024 tidak cukup.
Menurut posting yang saya temukan sejauh ini, saya seharusnya bisa memasukkan garis
/etc/security/limits.conf menyukai ini:
soft nofile 4096
hard nofile 4096
untuk meningkatkan jumlah file terbuka yang diizinkan untuk semua pengguna.
Tapi itu tidak berfungsi untuk saya dan saya pikir masalahnya tidak terkait dengan file itu.
Untuk semua pengguna, batas default adalah 1024, terlepas dari apa yang ada di /etc/security/limits.conf (saya reboot setelah mengubah file itu)
$ ulimit -n
1024
Sekarang, meskipun ada entri di /etc/security/limits.conf saya tidak bisa meningkatkannya:
$ ulimit -n 2048
-bash: ulimit: buka file: tidak dapat mengubah batas: Operasi tidak diizinkan Bagian yang aneh adalah bahwa saya dapat mengubah batas ke bawah , tetapi tidak dapat mengubahnya ke atas - bahkan untuk kembali ke nomor yang di bawah batas asli:
$ ulimit -n 800
$ ulimit -n
800
$ ulimit -n 900
-bash: ulimit: open files: cannot modify limit: Operation not permitted
Sebagai root, saya dapat mengubah batas itu ke apa pun yang saya inginkan, naik atau turun. Bahkan tampaknya tidak peduli tentang batas sistem yang seharusnya dalam / proc / sys / fs / file-max
# cat /proc/sys/fs/file-max
188897
# ulimit -n 188898
# ulimit -n
188898
Tetapi bahkan saya mendapatkan gerhana untuk dijalankan sebagai root, aplikasi saya masih macet karena pengecualian "Terlalu Banyak Buka File"!
Sejauh ini, saya belum menemukan cara untuk meningkatkan batas file terbuka untuk pengguna non-root.
Bagaimana seharusnya saya melakukan ini dengan benar? Saya telah melihat beberapa posting lain tetapi tidak berhasil!
/etc/security/limits.conf
, Anda mungkin harus keluar dan kembali sebelum Anda dapat menggunakan batas maksimum yang baru. Saya melakukan ini, dan bingung denganulimit -Hs
masih menampilkan 1000 ketika saya baru saja menaikkannya menjadi 10.00000! Kemudian saya logout dan kembali, dan ulimit menunjukkan jumlah yang baru.