web-dev-qa-db-fra.com

Impossible d'augmenter la limite de fichiers ouverts après 4096 (Ubuntu)

Je suis sur Ubuntu 17.04. Essayez d'augmenter la limite de fichiers ouverts et aucune des instructions que j'ai trouvées en ligne ne fonctionne. Je peux aller jusqu'à 4096, mais je ne peux pas dépasser cela.

$ ulimit -n
1024
$ ulimit -n 4096
$ ulimit -n
4096

Ça marche. Cela ne veut pas:

$ ulimit -n 4097
bash: ulimit: open files: cannot modify limit: Operation not permitted

Cela semble être dû à la limite stricte:

$ ulimit -Hn
4096

J'ai essayé d'ajouter ces lignes à /etc/security/limits.conf:

*                hard    nofile          65535
*                soft    nofile          65535
root             soft    nofile          65535
root             hard    nofile          65535

Également ajouté cette ligne à /etc/pam.d/common-session et /etc/pam.d/common-session-noninteractive:

session required pam_limits.so

Depuis, j'ai redémarré mon ordinateur. Les modifications apportées à limits.conf ne semblent affecter rien. La limite dure est toujours bloquée à 4096, m'empêchant d'aller plus haut. Comment augmenter ma limite de fichiers ouverts?


Voici quelques informations de configuration supplémentaires:

$ cat /proc/sys/fs/file-max 
1624668
29
mkasberg

OK, j'ai finalement compris cela. Les limites que je fixais dans /etc/security/limits.conf étaient appliquées, mais pas à la connexion graphique. Ceci peut être vérifié comme ceci depuis une fenêtre de terminal:

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

Plus de recherches m'ont conduit à ce rapport de bug , ce qui m'a permis de pointer 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 avec une limite stricte de 4096). Afin de modifier é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. Changer les limites de 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:

  • Modifiez les fichiers /etc/systemd/user.conf et /etc/systemd/system.conf à l'aide de la ligne suivante (cela prend en charge la connexion graphique):

    DefaultLimitNOFILE=65535
    
  • Modifiez /etc/security/limits.conf avec les lignes suivantes (cela s’occupe de la connexion en dehors de l’interface graphique):

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

46
mkasberg

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

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

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

  1. créez un nouveau fichier /etc/systemd/system.conf.d/limits.conf avec le contenu suivant:

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

  3. se déconnecter et se reconnecter

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

Reportez-vous à la page de manuel systemd-system.conf pour plus de détails.

9
Marc.2377

En utilisant Ubuntu 17.04, j'ai obtenu la limite stricte décrite:

[email protected]:~$ ulimit -Hn
4096

Je pourrais l'abaisser en utilisant ulimit, mais pas l'augmenter, comme le dit la question. Le manuel ulimit décrit:

seule la racine peut augmenter la limite dure.

J'ai donc essayé de définir une limite supérieure dans /etc/security/limits.conf comme ceci:

user hard nofile 9999

et un nouveau login comme ssh localhost -l user m'a donné la nouvelle limite:

[email protected]:~$ ulimit -Hn
9999

J'espère que cela fonctionne pour vous aussi.

0
Paresh Chauhan