GNU/Linux >> Linux Esercitazione >  >> Linux

Troppi file aperti su Debian

Soluzione 1:

Se il tuo processo viene avviato tramite uno script, puoi inserire la chiamata a ulimit nello script appena prima dell'esecuzione del demone.

Se desideri aumentare l'ulimit per il tuo utente, o per tutti gli utenti, puoi impostare dei limiti che vengono applicati tramite pam_limits all'accesso. Questi sono impostati in /etc/security/limits.conf . Nel tuo caso, potresti fare qualcosa del tipo:

*               hard    nofile             2048

Si noti che "difficile" denota un limite rigido, che non può essere superato e non può essere modificato. Un limite flessibile può essere modificato da un utente (ad esempio qualcuno senza capacità di root), ma non oltre il limite rigido.

Leggi il limits.conf per ulteriori informazioni sull'uso di pam_limits .

Soluzione 2:

C'è anche un "massimo totale" di file aperti impostato nel kernel, puoi controllare l'impostazione corrente con:

cat /proc/sys/fs/file-max 

E imposta un nuovo valore con:

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

Se vuoi mantenere la configurazione tra un riavvio e l'altro, aggiungi

sys.fs.file-max=104854

a

/etc/sysctl.conf

Per verificare l'utilizzo massimo corrente del file:

[[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)

Soluzione 3:

Come altri hanno già detto, puoi applicare limiti specifici per utente o gruppo in /etc/security/limits.conf.

Nota:ulimit -n mostra il limite flessibile.

ulimit -H -n 

ti mostrerà il limite rigido.

Ciò rende l'output di ulimit -a e ulimit -n abbastanza confuso se, ad esempio, stai aumentando il numero di file da 1024 a 4096, poiché ti aspetteresti di vedere l'output del limite rigido, ma stai ancora vedendo 1024 che è il soft limite.

Inoltre, ricorda che questi limiti vengono applicati per accesso, quindi accedi nuovamente in una nuova shell e controlla le modifiche, non aspettarti che vengano propagate agli accessi esistenti.

Soluzione 4:

Tieni presente che se esegui il tuo processo impostando start-stop-daemon ulimits in /etc/security/limits.conf non funziona. Se, ad esempio, desideri aumentare il limite di file aperti per Tomcat a 20000, devi aggiungerli alle righe a /etc/default/tomcat :

ulimit -Hn 32768
ulimit -Sn 32768

Ho riscontrato questo problema su debian 6.0.4 Per altri processi le risposte fornite dovrebbero aiutare.


Linux
  1. Avvio di udev:udevd inotify_init non riuscito:troppi file aperti

  2. Numero massimo di file aperti per il processo di lavoro

  3. Perché git fallisce su push/fetch con troppi file aperti

  4. bash:/bin/tar:elenco di argomenti troppo lungo durante la compressione di molti file con tar

  5. Come impostare i file aperti max nginx?

Come configurare Samba in Debian

Come trovare file in Debian 10

Risoluzione dei problemi:troppi reindirizzamenti

Come trovare file in Debian

Impossibile modificare il numero massimo di file aperti per processo con sysctl

Troppi file aperti (CentOS7) - già provato a impostare limiti più alti