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
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.
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.
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
:
créez un nouveau fichier /etc/systemd/system.conf.d/limits.conf
avec le contenu suivant:
[Manager]
DefaultLimitNOFILE=65535
lancez systemctl daemon-reexec
en tant que root
se déconnecter et se reconnecter
vérifiez votre nouvelle limite avec ulimit -n
.
Reportez-vous à la page de manuel systemd-system.conf
pour plus de détails.
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.