Batas buka file default per proses adalah 1024 on-say-Linux. Untuk daemon tertentu ini tidak cukup. Jadi, pertanyaannya: Bagaimana cara mengubah batas file terbuka untuk pengguna tertentu?
sumber
Batas buka file default per proses adalah 1024 on-say-Linux. Untuk daemon tertentu ini tidak cukup. Jadi, pertanyaannya: Bagaimana cara mengubah batas file terbuka untuk pengguna tertentu?
Di Linux Anda dapat mengkonfigurasinya melalui limits.conf
, mis. Via
# cd /etc/security
# echo debian-transmission - nofile 8192 > limits.d/transmission.conf
(yang menetapkan batas keras dan lunak untuk proses yang dimulai di bawah transmisi debian pengguna ke 8192)
Anda dapat memverifikasi perubahan melalui:
# sudo -u debian-transmission bash -c "ulimit -a"
[..]
open files (-n) 8192
[..]
Jika daemon sudah berjalan, itu harus diulang kembali sehingga batas baru diambil. Jika daemon dimulai secara manual dari sesi pengguna, pengguna harus masuk kembali untuk mendapatkan batas baru.
Sebagai alternatif, Anda juga dapat menentukan batas tambahan secara langsung /etc/security/limits.conf
, tentu saja - tetapi saya lebih suka .d
pendekatan direktori untuk pemeliharaan yang lebih baik.
Untuk menerapkan batas lunak / keras yang berbeda gunakan dua entri, mis
debian-transmission soft nofile 4096
debian-transmission hard nofile 8192
(alasan di balik ini: nilai lunak ditetapkan setelah pengguna masuk tetapi proses pengguna diizinkan untuk meningkatkan batas hingga batas keras)
The limits.conf
/ limits.d
konfigurasi digunakan oleh pam_limits.so
, yang diaktifkan secara default pada distribusi Linux saat ini.
Ada juga batas seluruh sistem di Linux, /proc/sys/fs/file-max
:
File ini menetapkan batas seluruh sistem pada jumlah file yang terbuka untuk semua proses.
Misalnya default pada Ubuntu 10.04:
$ cat /proc/sys/fs/file-max
786046
File pseudo /proc/sys/fs/file-nr
memberikan informasi lebih lanjut, misalnya
$ cat /proc/sys/fs/file-nr
1408 0 786046
jumlah pegangan file yang dialokasikan (yaitu, jumlah file yang saat ini dibuka); jumlah pegangan file gratis; dan jumlah maksimum menangani file
Jadi, di satu sisi, Anda juga mungkin harus menyesuaikan file-max
batas sistem-lebar , dalam hal ini sangat kecil dan / atau sistem sudah sangat dimuat. Di sisi lain, peningkatan saja file-max
tidak cukup, karena tidak mempengaruhi batas lunak / keras yang ditegakkan oleh mekanisme pam_limits.
Untuk mengubah file-max
pada baris perintah (tidak perlu reboot):
# sysctl -w fs.file-max=786046
Untuk perubahan permanen menambahkan fs.file-max=786046
ke /etc/sysctl.conf
atau /etc/sysctl.d
.
Batas atas aktif fs.file-max
dicatat dalam fs.nr_open
. Misalnya, (lagi) di Ubuntu 10.04:
$ sysctl -n fs.nr_open
1048576
(yaitu 1024 * 1024)
Sysctl ini juga dapat dikonfigurasi.