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 !