ホームページ  >  記事  >  バックエンド開発  >  Python エラー メッセージ: [Errno 24] 開いているファイルが多すぎる場合の分析と解決策

Python エラー メッセージ: [Errno 24] 開いているファイルが多すぎる場合の分析と解決策

高洛峰
高洛峰オリジナル
2017-02-18 10:10:212591ブラウズ

背景

最近、マルチスレッドスキャンスクリプトを実行すると、次のエラーが頻繁に発生することに気づきました

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;,))

かなり奇妙です...

分析

ブロガー私の小規模なプロジェクトでは、データを収集するためにマルチスレッドのバッチ スキャンが必要になることがよくあります。データ収集などの機能では、スレッドが多いほど良いため、帯域幅が十分であり、システムのハードウェア構成が十分に高い場合でも、通常はスキャンに 3000 スレッドを使用します。 、上記の問題は依然として発生するため、システムの制限によるものではないかと疑問に思います。

検索エンジンを通じて、

$ ulimit -n
1024

を実行すると、結果は1024でした。システム制限は同時に1024ファイルを開くことですが、これは明らかに少なすぎます。 。

解決

この問題の解決策は非常に簡単で、以下のファイルを直接変更します

sudo vim /etc/security/limits.conf

このファイルの最後に2行のコードを追加してください

* soft nofile 10240
* hard nofile 10240

もちろん、この番号はあなた自身の番号に基づいています。変更する必要がある場合は、ログアウトして、保存後に再度ログインしてください。

その他の Python エラー プロンプト: [Errno 24] 開いているファイルが多すぎることの分析と解決 関連記事については、PHP 中国語 Web サイトに注目してください。


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。