Lors de l'exécution de mon application, j'obtiens parfois une erreur too many files open
.
L'exécution de ulimit -a
rapports indique que la limite est 1024. Comment puis-je augmenter la limite au-dessus de 1024?
Modifier les
ulimit -n 2048
résultats dans une erreur d'autorisation.
Réponses:
Vous pouvez toujours essayer de faire un
ulimit -n 2048
. Cela ne fera que réinitialiser la limite de votre shell actuel et le nombre que vous spécifiez ne doit pas dépasser la limite stricteChaque système d'exploitation a une configuration de limite fixe différente dans un fichier de configuration. Par exemple, la limite de fichiers ouverts sur Solaris peut être définie au démarrage à partir de / etc / system.
Sous OS X, ces mêmes données doivent être définies dans /etc/sysctl.conf.
Sous Linux, ces paramètres se trouvent souvent dans /etc/security/limits.conf.
Il existe deux types de limites:
N'importe quel utilisateur peut définir des limites logicielles tandis que les limites strictes ne peuvent être modifiées que par root. Les limites sont la propriété d'un processus. Ils sont hérités lorsqu'un processus enfant est créé, de sorte que les limites à l'échelle du système doivent être définies lors de l'initialisation du système dans les scripts d'initialisation et les limites utilisateur doivent être définies lors de la connexion utilisateur, par exemple en utilisant pam_limits.
Des paramètres par défaut sont souvent définis lors du démarrage de la machine. Ainsi, même si vous pouvez réinitialiser votre ulimit dans un shell individuel, vous pouvez constater qu'il revient à la valeur précédente au redémarrage. Vous pouvez vouloir grep vos scripts de démarrage pour les commandes d'existence ulimit si vous voulez changer la valeur par défaut.
la source
2048
mais pas4500
pourquoi? voir ceciulimit
. Vous devez spécifier ce que vous utilisez (par exemple WSL, Cygwin).Si vous utilisez Linux et que vous avez obtenu l'erreur d'autorisation, vous devrez augmenter la limite autorisée dans le fichier
/etc/limits.conf
ou/etc/security/limits.conf
(l'emplacement du fichier dépend de votre distribution Linux spécifique).Par exemple, pour permettre à quiconque sur la machine d'augmenter son nombre de fichiers ouverts jusqu'à 10000, ajoutez la ligne au
limits.conf
fichier.* hard nofile 10000
Déconnectez-vous ensuite et reconnectez-vous à votre système et vous devriez pouvoir:
ulimit -n 10000
sans erreur d'autorisation.
la source
root
utilisateur. Vous devez spécifierroot hard nofile 10000
si vous souhaitez ajuster laroot
limite.ulimit
et enfin découvert que je suis connecté en tant que root. C'est pourquoi j'ai continué à voir le 1024 poulimit -a
. J'ai changé le wildcare et ajouté un*
intérieurlimits.conf
. Tout va bien maintenant (je n'utilise pas les touches ssh, ne vous inquiétez pas: P) - Merci !!!/etc/security/limits.d/
.1) Ajoutez la ligne suivante à
/etc/security/limits.conf
puis connectez-vous en tant qu'utilisateur Web
2) Modifier les deux fichiers suivants pour l'utilisateur Web
ajoutez les fichiers .bashrc et .bash_profile en exécutant
3) Déconnectez-vous, puis reconnectez-vous et vérifiez que les modifications ont été effectuées correctement:
C'est tout et eux boom, boom boom.
la source
Si certains de vos services rechignent en ulimits, il est parfois plus facile de mettre des commandes appropriées dans le script init du service. Par exemple, lorsque Apache signale
Essayez de mettre
ulimit -s unlimited
en/etc/init.d/httpd
. Cela ne nécessite pas de redémarrage du serveur.la source