Correction ulimit: fichiers ouverts: impossible de modifier la limite: opération non autorisée


13

J'ai testé cela sur différentes installations GNU / Linux:

perl -e 'while(1){open($a{$b++}, "<" ,"/dev/null") or die $b;print " $b"}'

Système A et D

La première limite que j'ai atteinte est 1024. Elle est facilement augmentée en la mettant dans /etc/security/limits.conf:

*                hard    nofile          1048576

puis exécutez:

ulimit -n 1048576
echo 99999999 | sudo tee /proc/sys/fs/file-max

Maintenant, le test passe à 1048576.

Cependant, il semble que je ne puisse pas l'augmenter au-dessus de 1048576. Si je mets 1048577 dans limits.conf, il est simplement ignoré.

Qu'est-ce qui cause ça?

Système B

Sur le système BI, vous ne pouvez même pas accéder à 1048576:

echo 99999999 | sudo tee /proc/sys/fs/file-max

/etc/security/limits.conf:

*                hard    nofile          1048576

Ici, je reçois:

$ ulimit -n 65537
bash: ulimit: open files: cannot modify limit: Operation not permitted
$ ulimit -n 65536
#OK

D'où vient cette limite?

Système C

Ce système a également la limite 1048576 dans limits.conf et 99999999 dans / proc / sys / fs / file-max.

Mais ici, la limite est de 4096:

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

Comment puis-je augmenter cela à (au moins) 1048576?

(Note à moi: Ne pas faire: echo 18446744073709551616 | sudo tee /proc/sys/fs/file-max)


1
J'ai exactement le même problème, la limite semble être 1048576. Si je passe en revue, j'obtiens l'erreur suivante: bash: ulimit: fichiers ouverts: impossible de modifier la limite: opération non autorisée
Abbadon

Salut, j'ai un problème très similaire. Je pense qu'il serait très utile de fournir plus de détails sur ce que sont ces différents systèmes.
Time4Tea

Réponses:


4

Cochez qui /etc/ssh/sshd_configcontient:

UsePAM=yes

et qui /etc/pam.d/sshdcontient:

session    required   pam_limits.so

Toujours pas de réponse à la raison pour laquelle 1048576 est max.

Le 1048576 semble être par processus. Donc, en ayant plusieurs processus, cette limite peut être dépassée.


4
Si c'était vraiment la solution à votre propre problème, je pense qu'il serait bon de faire plus de lien entre le problème et la solution ci-dessus.
Jeff Schaller

2
Re: 1048576 (= 2 ^ 10 * 2 ^ 10 = 1024 ^ 2, pour référence). Il peut y avoir des informations pertinentes dans cette réponse ici: stackoverflow.com/a/1213069/2320823
saladi

1
Qu'est-ce que ssh a à voir avec ça?
Linas

Je suis d'accord avec @Linas. Désolé, je pense que le lien entre la réponse et la question n'est pas clair.
Time4Tea
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.