socket.accept erreur 24: Pour de nombreux fichiers ouverts
J'ai un problème avec les fichiers ouverts sous mon Ubuntu 9.10 lors de l'exécution de serveur dans Python2.6
Et le principal problème est que, je ne sais pas pourquoi..
J'ai mis
ulimit-n = 999999
net.de base.somaxconn = 999999
fs.file-max = 999999
et lsof me donne environ 12000 fichiers ouverts lorsque le serveur est en cours d'exécution.
Et aussi, je suis en utilisant epoll.
Mais après un certain temps, c'est de commencer à donner exeption:
Fichier "/usr/lib/python2.6/socket.py" de ligne, 195, accepter
erreur: [Errno 24] Trop de fichiers ouverts
Et je ne sais pas comment il peut atteindre fichier de limite quand il n'est pas atteinte.
Merci pour l'aide)
source d'informationauteur Andrey Nikishaev
Vous devez vous connecter pour publier un commentaire.
Paramètres de configuration max connexions ouvertes.
dans /etc/sysctl.conf
ajouter:
et puis:
dans /usr/include/linux/limites.h
changement:
à /etc/security/limits.conf
ajouter:
Vous pouvez également le faire à partir de votre code python comme ci-dessous
Le second argument est un tuple
(soft_limit, hard_limit)
. La limite est le plafond de la limite. La limite est ce qui est réellement appliquée pour une session ou d'un processus. Cela permet à l'administrateur (ou l'utilisateur) pour définir la limite au maximum l'utilisation qu'ils souhaitent permettre. Les autres utilisateurs et les processus peuvent alors utiliser la limite de l'auto-limiter leur utilisation des ressources à des niveaux plus bas s'ils le désirent.