GNU/Linux >> Tutoriels Linux >  >> Linux

Trop de fichiers ouverts sur Debian

Solution 1 :

Si votre processus est démarré via un script, vous pouvez placer l'appel à ulimit dans le script juste avant d'exécuter le démon.

Si vous souhaitez augmenter l'ulimit pour votre utilisateur, ou pour tous les utilisateurs, vous pouvez définir des limites qui sont appliquées via pam_limits à la connexion. Ceux-ci sont définis dans /etc/security/limits.conf . Dans votre cas, vous pourriez faire quelque chose comme :

*               hard    nofile             2048

Notez que "dur" désigne une limite stricte - une limite qui ne peut pas être dépassée et ne peut pas être modifiée. Une limite souple peut être modifiée par un utilisateur (par exemple, quelqu'un sans capacités root), mais pas au-delà de la limite stricte.

Lire le limits.conf pour plus d'informations sur l'utilisation de pam_limits .

Solution 2 :

Il existe également un "total max" de fichiers ouverts définis dans le noyau, vous pouvez vérifier le paramètre actuel avec :

cat /proc/sys/fs/file-max 

Et définissez une nouvelle valeur avec :

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

Si vous souhaitez conserver la configuration entre les redémarrages, ajoutez

sys.fs.file-max=104854

à

/etc/sysctl.conf

Pour vérifier l'utilisation maximale actuelle des fichiers :

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

Solution 3 :

Comme d'autres l'ont dit, vous pouvez appliquer des limites spécifiques par utilisateur ou groupe dans /etc/security/limits.conf.

Remarque :ulimit -n affiche la limite souple.

ulimit -H -n 

vous montrera la limite stricte.

Cela rend la sortie ulimit -a et ulimit -n assez déroutante si, par exemple, vous augmentiez le nombre de fichiers de 1024 à 4096, comme vous vous attendriez à voir la sortie de la limite stricte, mais vous voyez toujours 1024 qui est le soft limite.

N'oubliez pas non plus que ces limites sont appliquées par connexion, alors reconnectez-vous dans un nouveau shell et vérifiez vos modifications, ne vous attendez pas à ce qu'elles soient propagées aux connexions existantes.

Solution 4 :

Sachez que si vous exécutez votre processus en définissant start-stop-daemon ulimits dans /etc/security/limits.conf ne fonctionne pas. Si vous souhaitez par exemple augmenter la limite de fichiers ouverts pour tomcat à 20000, vous devez les ajouter aux lignes à /etc/default/tomcat :

ulimit -Hn 32768
ulimit -Sn 32768

J'ai rencontré ce problème sur debian 6.0.4Pour d'autres processus, les réponses données devraient aider.


Linux
  1. Comment augmenter la limite du nombre de fichiers ouverts sous Linux

  2. Comment augmenter la limite des fichiers ouverts dans Ubuntu ?

  3. Trop d'erreurs de connexions dans MySQL

  4. Max fichiers ouverts pour le processus de travail

  5. bash :/bin/tar :liste d'arguments trop longue lors de la compression de nombreux fichiers avec tar

Comment configurer Samba dans Debian

Comment trouver des fichiers dans Debian 10

Résolution de l'erreur Mysql :Trop de fichiers ouverts

Dépannage :Trop de redirections

Comment trouver des fichiers dans Debian

Trop de niveaux de liens symboliques