Meningkatkan jumlah file yang terbuka maksimal di Linux

A+ A-

Jika Anda bekerja pada Linux, maka Anda harus telah mengalami banyak-a-waktu dengan "Terlalu banyak file terbuka (24)" kesalahan. Sistem operasi Linux menyediakan cara untuk membatasi jumlah file yang dapat digunakan oleh setiap pengguna. Artikel ini memberikan wawasan tentang bagaimana meningkatkan jumlah file yang terbuka atau deskriptor file dalam sistem operasi Linux.

Perintah ulimit memiliki kontrol atas shell atau proses dan harus memerlukan login sebagai user root. Perintah ulimit digunakan untuk mengatur batas file yang hanya berlaku untuk sesi Anda saat ini.

Gunakan perintah berikut untuk menampilkan jumlah maksimum file yang terbuka descriptors-

 # Cat / proc / sys / fs / file max
801.841 

Pada perintah di atas, pengguna dapat memiliki terbuka 801.841 file dalam sesi login tunggal. Untuk melihat nilai-nilai keras dan lunak deskriptor file, gunakan commands- berikut

Nilai keras dari Deskriptor Berkas

Nilai keras batas hanya dapat diubah oleh user root. pengguna non-root tidak dapat melampaui batas keras.

Kami dapat memeriksa nilai-nilai keras menggunakan perintah berikut -

$ ulimit -Hn
4096 

Pada perintah di atas, "H" pilihan menunjukkan tentang nilai keras dan "n" menunjukkan jumlah file.

Nilai lembut dari Deskriptor Berkas

Batas nilai yang lembut dapat dimodifikasi oleh proses pengguna setiap saat. Hal ini digunakan untuk menonaktifkan dump inti.

Kami dapat memeriksa nilai-nilai keras menggunakan perintah berikut -

$ ulimit -Sn
1024 

Pada perintah di atas, "S" pilihan menunjukkan nilai sekitar lembut dan "n" menunjukkan jumlah file.

Memperbaiki "Terlalu banyak membuka file" error

Hal ini dimungkinkan untuk meningkatkan jumlah maksimum file yang terbuka dengan menetapkan nilai baru dalam variabel kernel / proc / sys / fs / file max sebagai berikut-

$ sysctl -w fs.file-max=100000
fs.file-max = 100000 

Pasukan komando atas file yang terbuka maksimal membatasi 100000 dan ini berlaku untuk sesi tertentu. Jika Anda ingin membuat nilai ini untuk seumur hidup, maka Anda perlu mengedit file /etc/sysctl.conf dan menempatkan baris berikut -

$ vi /etc/sysctl.conf

Output sampel harus seperti ini -

........
#
# Do not send ICMP redirects (we are not a router)
#net.ipv4.conf.all.send_redirects = 0
#
# Do not accept IP source route packets (we are not a router)
#net.ipv4.conf.all.accept_source_route = 0
#net.ipv6.conf.all.accept_source_route = 0
#
# Log Martian Packets
#net.ipv4.conf.all.log_martians = 1
# fs.file-max = 50000
 

Ganti nilai-file max 100000 dan menyimpannya. Pengguna harus log out dan masuk lagi untuk membuat perubahan berlaku atau cukup ketik perintah berikut -

$ sysctl -p

Untuk memverifikasi itu, gunakan perintah berikut -

$ cat /proc/sys/fs/file-max

Output sampel harus seperti ini -

$ cat /proc/sys/fs/file-max
100000 

Batas Descriptor pengguna Tingkat Berkas

Prosedur di atas menggambarkan tingkat sistem batas file descriptor. Namun, kita dapat mengatur tingkat pengguna batas file descriptor. Untuk menentukan tingkat pengguna batas file descriptor, Anda dapat melakukannya dengan mengedit file /etc/security/limits.conf.

Untuk mengedit file, gunakan perintah berikut -

$ vi /etc/security/limits.conf

Output sampel harus seperti ini -

.....
#*               soft    core            0
#root            hard    core            100000
#*               hard    rss             10000
#@student        hard    nproc           20
#@faculty        soft    nproc           20
#@faculty        hard    nproc           50
#ftp             hard    nproc           0
#ftp             -       chroot          /ftp
#@student        -       maxlogins       4

Tambahkan baris berikut ke limits.conf berkas -

#tp         soft    nofile          4096
#tp        hard     nofile         10240

Berikut tp adalah nama pengguna sistem. Simpan dan tutup file tersebut. Untuk melihat batas, gunakan perintah ulimits seperti yang ditunjukkan di atas.

Selamat! Sekarang, Anda tahu "Bagaimana meningkatkan jumlah maksimum file terbuka atau deskriptor file". Kita akan belajar lebih banyak tentang jenis perintah dalam posting Linux kami berikutnya. Terus membaca!