GNU/Linux >> Tutoriels Linux >  >> Linux

Impossible d'augmenter la limite de fichiers ouverts au-delà de 4096 (Ubuntu)

OK, j'ai enfin compris ça. Les limites que je fixais dans /etc/security/limits.conf étaient appliqués, mais ils n'étaient pas appliqués à la connexion graphique. Cela peut être vérifié comme ceci à partir d'une fenêtre de terminal :

$ ulimit -n
4096
$ su mkasberg
Password:
$ ulimit -n
65535

Plus de recherches m'ont conduit à ce rapport de bogue, qui m'a orienté dans la bonne direction. Afin de modifier la limite utilisée par le shell de connexion, nous devons ajouter la ligne suivante à /etc/systemd/user.conf :

DefaultLimitNOFILE=65535

Ce changement fonctionne, mais n'affecte que la limite souple. (Nous laissant toujours plafonné avec une limite stricte de 4096.) Afin d'affecter également la limite stricte, nous devons modifier /etc/systemd/system.conf avec le même changement.

Les modifications que j'ai apportées dans /etc/pam.d n'étaient pas nécessaires. Au moins sur Ubuntu, cela fonctionne déjà. De plus, il n'était pas nécessaire de modifier les paramètres pour root et * dans limits.conf. Modification des limites pour mkasberg était suffisant, du moins pour mon cas d'utilisation.

En résumé

Si vous souhaitez augmenter la limite indiquée par ulimit -n , vous devez :

  • Modifier /etc/systemd/user.conf et /etc/systemd/system.conf avec la ligne suivante (cela prend en charge la connexion graphique):

    DefaultLimitNOFILE=65535
    
  • Modifier /etc/security/limits.conf avec les lignes suivantes (cela prend en charge la connexion non-GUI):

    mkasberg hard nofile 65535
    mkasberg soft nofile 65535
    
  • Redémarrez votre ordinateur pour que les modifications prennent effet.


Pas besoin de changer quoi que ce soit dans le /etc/security/limits.conf fichier, il est ignoré si vous utilisez systemd.

(reproduire une réponse modifiée à une autre question sur le réseau...)

Une alternative pour ceux qui préfèrent ne pas modifier le /etc/systemd/system.conf par défaut et /etc/systemd/user/conf fichiers :

  1. créer un nouveau fichier /etc/systemd/system.conf.d/limits.conf avec ces contenus :

    [Manager]
    DefaultLimitNOFILE=65535
    
  2. exécutez systemctl daemon-reexec en tant que root

  3. déconnectez-vous et reconnectez-vous

  4. vérifiez votre nouvelle limite avec ulimit -n .

Se référer au systemd-system.conf page de manuel pour plus de détails.


TL;DRI a ressenti le besoin de concentrer les réponses, afin qu'elles soient plus faciles à trouver. Il m'a fallu des siècles pour rassembler toutes les pièces pour que cela fonctionne correctement...

Il y a 2 emplacements à considérer.

  1. Session graphique

    $ grep DefaultLimitNOFILE /etc/systemd/system.conf
    DefaultLimitNOFILE=65535
    

    ou mieux ici :

    $ grep NOFILE /etc/systemd/system.conf.d/limits.conf
    DefaultLimitNOFILE=65535
    
  2. environnement shell

    $ grep nofile /etc/security/limits.conf
    user soft nofile 65535
    user hard nofile 65535`
    

    ou mieux ici :

    $ grep nofile /etc/security/limits.d/user.conf
    user soft nofile 65535
    user hard nofile 65535
    
  3. Après avoir modifié les paramètres dans les fichiers ci-dessus, redémarrez puis vérifiez les limites avec :ulimit -n -Hn -Sn


Linux
  1. Je ne peux pas ouvrir les paramètres système dans Ubuntu 17.10 ?

  2. Comment augmenter la taille d'échange sur Ubuntu Linux

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

  4. Comment augmenter la limite de taille de téléchargement de fichiers dans Apache

  5. C ouvert vs ouvert

Comment ouvrir des fichiers ISO sur Ubuntu Linux

Comment augmenter la limite du nombre de fichiers ouverts sous Linux

Comment décompresser (ouvrir) le fichier Gz

Comment changer la limite de fichiers ouverts sous Linux

Comment ouvrir le gestionnaire de fichiers Ubuntu en tant qu'utilisateur root

nginx uLimit 'worker_connections dépasse la limite de ressources de fichiers ouverts :1024'