Penting untuk mengetahui bahwa ada dua jenis batasan:
- Sebuah batas keras dikonfigurasi oleh root saja. Ini adalah nilai tertinggi (batas) untuk batas lunak.
- Sebuah batas yang lembut dapat diatur oleh pengguna biasa. Ini adalah batas aktual yang berlaku.
Solusi untuk satu sesi
Dalam shell mengatur batas lunak:
ulimit -Sn 2048
Contoh ini akan menaikkan batas aktual menjadi 2048 tetapi perintah hanya akan berhasil jika batas keras (centang:) ulimit -Hn
sama atau lebih tinggi. Jika Anda membutuhkan nilai yang lebih tinggi, naikkan batas hard menggunakan salah satu metode di bawah ini. Batas ditetapkan per proses dan diwarisi oleh proses yang baru lahir, jadi apa pun yang Anda jalankan setelah perintah ini di shell yang sama akan memiliki batas baru.
Mengubah batas keras dalam satu sesi
Ini tidak mudah karena hanya root yang dapat mengubah batas keras dan setelah beralih ke root, Anda harus beralih kembali ke pengguna asli. Inilah solusinya dengan sudo
:
sudo sh -c "ulimit -Hn 9000 ; exec su \"$USER\""
Solusi seluruh sistem
Di Debian dan banyak sistem lain yang menggunakan pam_limits
Anda dapat mengatur batas seluruh sistem di dalam /etc/security/limits.conf
dan di dalam file /etc/security/limits.d
. File conf berisi deskripsi. Baris contoh:
@webadmins hard nofile 16384
@webadmins soft nofile 8192
Ini akan menetapkan batas keras dan batas lunak default untuk pengguna dalam grup webadmins
setelah login.
Batas lainnya
Nilai batas keras dibatasi oleh batas global nilai deskriptor file terbuka /proc/sys/fs/file-max
yang secara default cukup tinggi di distribusi Linux modern. Nilai ini dibatasi oleh NR_OPEN
nilai yang digunakan selama kompilasi kernel.
Apakah tidak ada solusi yang lebih baik?
Mungkin Anda dapat memeriksa apakah semua *log
file yang Anda berikan tail -f
adalah file yang benar-benar aktif yang perlu dipantau. Ada kemungkinan bahwa beberapa dari mereka sudah ditutup untuk pencatatan dan Anda hanya dapat membuka sejumlah kecil file.