Maison >développement back-end >Tutoriel Python >Message d'erreur Python : [Errno 24] Analyse et solution du trop grand nombre de fichiers ouverts

Message d'erreur Python : [Errno 24] Analyse et solution du trop grand nombre de fichiers ouverts

高洛峰
高洛峰original
2017-02-18 10:10:212657parcourir

Contexte

J'ai récemment découvert une erreur au travail lors de l'exécution d'un script d'analyse multithread, l'erreur suivante s'est fréquemment produite

HTTPConnectionPool(host=‘t.tips&#39;, port=80): Max retries exceeded with url: /index.php (Caused by NewConnectionError(&#39;<requests.packages.urllib3.connection.HTTPConnection object at 0x7f29d4081150>: Failed to establish a new connection: [Errno 24] Too many open files&#39;,))

C'est bizarre...

Analyse

Certains petits projets entre les mains du blogueur nécessitent souvent du multi-threading Batch analyser pour collecter des données. Pour des fonctions telles que la collecte de données, plus il y a de threads, mieux c'est, donc j'utilise généralement 3 000 threads pour l'analyse. Après m'être assuré que la bande passante est suffisante et que la configuration matérielle du système est suffisamment élevée, les problèmes ci-dessus se produisent. je me demande si cela est dû aux limitations du système.

J'ai trouvé une introduction aux limitations du système via le moteur de recherche Lorsque j'ai exécuté

$ ulimit -n
1024

, le résultat était 1024, et le résultat était 1024. La limite du système est d'ouvrir simultanément 1024 fichiers, ce qui est évidemment trop peu.

Solution

La solution à ce problème est très simple, modifiez directement le fichier suivant

sudo vim /etc/security/limits.conf

Ajoutez deux lignes de code à la fin de ce fichier

* soft nofile 10240
* hard nofile 10240

Bien sûr, vous pouvez modifier ce numéro en fonction de votre besoins, enregistrez-le. Déconnectez-vous et reconnectez-vous.

Plus de messages d'erreur Python : [Errno 24] Analyse et résolution de Trop de fichiers ouverts Pour les articles connexes, veuillez faire attention au site Web PHP chinois !


Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn