Je n'arrive pas à augmenter la nofile
limite pour les utilisateurs non root sur Ubuntu 14.04, malgré le suivi de chaque réponse StackExchange liée à ce problème. Jusqu'à présent, j'ai:
$ cat /etc/security/limits.d/custom.conf
@www-data hard nofile 50000
@www-data soft nofile 50000
# even tried specifying the username directly:
myuser hard nofile 50000
myuser soft nofile 50000
$ grep 'limits' /etc/pam.d/common-session*
/etc/pam.d/common-session:session required pam_limits.so
/etc/pam.d/common-session-noninteractive:session required pam_limits.so
$ cat /proc/sys/fs/file-max
101232
Redémarré, connecté et:
$ ulimit -n 4097
-bash: ulimit: open files: cannot modify limit: Operation not permitted
Il semble toujours y avoir une limite de 4096 max pour les utilisateurs non root.
Réponses:
En utilisant Ubuntu 14.04, j'ai obtenu la limite stricte décrite:
Je pourrais l'abaisser en utilisant ulimit, mais pas l'augmenter, tout comme la question le décrit. Comme le décrit le manuel d'ulimit:
J'ai donc essayé de fixer une limite plus élevée
/etc/security/limits.conf
comme ceci:et une nouvelle connexion comme
ssh localhost -l user
m'a donné la nouvelle limite:J'espère que cela fonctionne aussi pour vous.
la source
/etc/security/limits*
n'est pas lu par votre mécanisme de connexion - pour une raison encore inconnue. 2. Votre limite fixe est fixée à 4096 ailleurs et "seule la racine peut augmenter ...". Vous pouvez vérifier vos profils comme.bashrc
(en fonction de votre shell), ou vous pouvez/etc
rechercher d'autres endroits, où des limites peuvent être définies, commefind /etc | grep -e ulimit -e 4096 -e nofile
. BTW: avez-vous essayé ssh? Et: avez-vous changé/etc/ssh/sshd.conf
pour éviter PAM pour une raison quelconque?/etc/security/limits*
- vous pouvez essayer d'activer PAM juste pour vérifier cela. J'essaierai de désactiver PAM pour voir quelle différence cela fait et je rapporterai les résultats. --- Oui! c'est ça! Avec PAM désactivé, ma limite est également de 4096, mais elle est fixée à 9999 pouces/etc/security/limits.conf
.Cet article , je pense, répond à votre problème.
Fondamentalement, vous devez utiliser la commande ulimit pour augmenter les ressources disponibles.
Par exemple:
Utilisez la commande suivante pour afficher le nombre maximal de descripteurs de fichiers ouverts:
Pour voir les valeurs matérielles et logicielles, exécutez la commande comme suit:
Pour afficher les valeurs matérielles et logicielles pour l'utilisateur httpd ou oracle, exécutez la commande comme suit:
Pour fixer le nombre de fichiers maximum, vous pouvez augmenter le nombre maximum de fichiers ouverts en définissant une nouvelle valeur dans la variable de noyau / proc / sys / fs / file-max comme suit (connectez-vous en tant que root):
La commande ci-dessus force la limite à 100 000 fichiers. Vous devez modifier le
/etc/sysctl.conf
fichier et mettre la ligne suivante afin qu'après le redémarrage, le paramètre reste tel quel. Pour ce faire, ajoutez une directive de configuration comme suit:Enregistrez et fermez le fichier. Les utilisateurs doivent se déconnecter et se reconnecter pour que les modifications prennent effet ou tapent simplement la commande suivante:
Vérifiez vos paramètres avec la commande:
ou:
La procédure ci-dessus définit les limites des descripteurs de fichiers (FD) à l'échelle du système, mais vous pouvez limiter
httpd
(ou tout autre utilisateur) l'utilisateur à des limites spécifiques en modifiant le/etc/security/limits.conf
fichier en modifiant/etc/security/limits.conf
et en définissant les limites comme suit:Vérifiez-les ensuite en:
Si vous avez le problème sur d'autres distributions Linux, vérifiez le
/etc/pam.d/login
et assurez-vous que vous l'avezpam_limits.so
activé, par exemplela source
S'il s'agit d'un service, vous pouvez essayer de définir la limite en
/etc/systemd/system/{ServiceName}.service
plusLimitNOFILE=65536
la source