XargsとWgetが1時間後に動作を停止する


8

デュアルコアと4GB RAMを搭載したWindows XPでCygwinを使用してスクリプトを実行する

cat url_list.txt | xargs -P50 wget -i

4GBURLをダウンロードしてダウンロードしようとしています(約4300万)

最初の1時間は問題なく動作しますが、URLリスト全体で2%しかありませんが、Bashシェルとダウンロードは停止します。

何が間違っているのかについてのアイデアはありますか?

これが1時間後に停止する理由をデバッグする最良の方法は何ですか?

回答:


2

wgetが一部のファイルをダウンロードするのに時間がかかっている可能性があります。ハングしているように見える期間中、メモリ内にwget / xargsプロセスはありますか?もしそうなら、それはxargsに-P50フラグで割り当てたフル50プロセスですか、それとも何らかの方法でその数以上またはその数未満に這い上がり、新しいインスタンスが適切に生成されていませんか?これはcygwinで実行されていますが、各wgetのダウンロードでタスクマネージャのインスタンスが起動されるため、ウィンドウ自体のプロセスリストを確認してください。


0

URLはさまざまなサイトのものだと思います。その場合、応答が遅く、wgetの1つがハングするサイトにアクセスする可能性があります。50を実行しているので、何も起こらないうちにそれらのサイトの50をヒットする必要があります。

これが事実であるかどうかを確認するには、吊り下げられたwgetの1つを殺してみて、それが解放されているかどうかを確認します。

ハングするURLをスキップするには、wgetにタイムアウトを指定できます。

wget -T 60
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.