Maison >développement back-end >Tutoriel Python >Message d'erreur Python : [Errno 24] Analyse et solution du trop grand nombre de fichiers ouverts
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', port=80): Max retries exceeded with url: /index.php (Caused by NewConnectionError('<requests.packages.urllib3.connection.HTTPConnection object at 0x7f29d4081150>: Failed to establish a new connection: [Errno 24] Too many open files',))
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 !