GNU/Linux >> Belajar Linux >  >> Linux

Terlalu banyak file yang terbuka di Debian

Solusi 1:

Jika proses Anda dimulai melalui skrip, Anda dapat melakukan panggilan ke ulimit dalam skrip sebelum mengeksekusi daemon.

Jika Anda ingin meningkatkan ulimit untuk pengguna Anda, atau untuk semua pengguna, Anda dapat menetapkan batas yang diterapkan melalui pam_limits saat login. Ini diatur dalam /etc/security/limits.conf . Dalam kasus Anda, Anda dapat melakukan sesuatu seperti:

*               hard    nofile             2048

Perhatikan bahwa "keras" menunjukkan batas keras - yang tidak dapat dilampaui, dan tidak dapat diubah. Batas lunak dapat diubah oleh pengguna (mis. seseorang tanpa kemampuan root), tetapi tidak melampaui batas keras.

Baca limits.conf untuk informasi selengkapnya tentang penggunaan pam_limits .

Solusi 2:

Ada juga "total max" file terbuka yang diatur di kernel, Anda dapat memeriksa pengaturan saat ini dengan:

cat /proc/sys/fs/file-max 

Dan tetapkan nilai baru dengan:

echo "104854" > /proc/sys/fs/file-max

Jika Anda ingin menyimpan konfigurasi di antara reboot, tambahkan

sys.fs.file-max=104854

untuk

/etc/sysctl.conf

Untuk memeriksa penggunaan file maksimum saat ini:

[[email protected] proc]# cat /proc/sys/fs/file-nr
3391    969     52427
|        |       |
|        |       |
|        |       maximum open file descriptors
|        total free allocated file descriptors
total allocated file descriptors
(the number of file descriptors allocated since boot)

Solusi 3:

Seperti yang dikatakan orang lain, Anda dapat menerapkan batasan khusus per pengguna atau grup di /etc/security/limits.conf.

Catatan:ulimit -n menunjukkan batas lunak.

ulimit -H -n 

akan menunjukkan kepada Anda batas keras.

Hal ini membuat keluaran ulimit -a dan ulimit -n cukup membingungkan jika misalnya, Anda menaikkan jumlah file dari 1024 menjadi 4096, seperti yang Anda harapkan untuk melihat keluaran hard limit, tetapi Anda masih melihat 1024 yang merupakan soft batas.

Juga, ingatlah bahwa batasan ini diberlakukan per login, jadi login ulang di shell baru dan periksa perubahan Anda, jangan berharap itu disebarkan ke login yang ada.

Solusi 4:

Ketahuilah bahwa jika Anda menjalankan proses dengan pengaturan start-stop-daemon ulimit di /etc/security/limits.conf tidak berfungsi. Misalnya, jika Anda ingin menaikkan batas file terbuka untuk Tomcat menjadi 20000, Anda perlu menambahkan ini ke baris /etc/default/tomcat :

ulimit -Hn 32768
ulimit -Sn 32768

Saya mengalami masalah ini pada debian 6.0.4Untuk proses lain, jawaban yang diberikan akan membantu.


Linux
  1. Bagaimana Cara Meningkatkan Batas File Terbuka di Ubuntu?

  2. Terlalu banyak kesalahan koneksi di MySQL

  3. Memulai udev:udevd inotify_init gagal:terlalu banyak file yang terbuka

  1. bash:/bin/tar:Daftar argumen terlalu panjang saat mengompresi banyak file dengan tar

  2. Bagaimana cara mengatur file terbuka nginx max?

  3. Debian - menghapus ribuan file

  1. s3cmd gagal berkali-kali

  2. Terlalu banyak file yang terbuka (CentOS7) - sudah mencoba menetapkan batas yang lebih tinggi

  3. Terlalu banyak level tautan simbolik