2016-05-19 2 views
0

私は、マルチプロセッシングとS3からファイルをダウンロードするリクエストを使用するかなり単純なPythonスクリプトを実行しています。このスクリプトをローカルで実行すると、非常に高速です(2.5分で5k画像)。私が最適化されたEBSを使用していて、3600 IOPを与えても、EC2インスタンス(g2.2xlarge、GPUインスタンスを使用する必要があるため)で同じ正確なスクリプトを実行すると、非常に遅い(10倍遅く) 。この時点で、私は何をチェックすべきか分かりません。どんな提案も高く評価されます。S3からのファイルをEC2インスタンスよりもローカルホスト上で高速にダウンロードしていますか?

スクリプトが要求にurllib2の交換することにより、ここから変更されました:

https://github.com/BVLC/caffe/blob/master/examples/finetune_flickr_style/assemble_data.py

+0

ここにスクリプトを投稿しますか?ディスクI/Oは大きな要因となります。ファイルを 'os.devnull'にダウンロードしようとしましたが、ローカルディスクI/Oを削除することはできませんでしたか?ローカル環境とS3ターゲットとの間の待ち時間とEC2インスタンスの待ち時間の違いは何ですか?両方からpingできますか? –

+2

S3バケットはどの地域にあり、EC2インスタンスはどの地域にありますか? –

+0

私はそれを理解しました。問題は私がS3によって絞られていた可能性が高いです。リクエストからboto3に切り替えると、ローカルマシンよりも速くなりました。 –

答えて

0

問題が最も可能性の高いEC2インスタンスから作られた私のHTTPリクエストを絞るCDNに関連しています。私がbotoを使用するように切り替えると、速度は私がローカルで行っていたものに匹敵するようになりました。

これは私のように誰かが時間を無駄にしないように助けてくれることを願っています!疑わしいときには、botoを使用してください。

+0

S3は、アクセスに使用しているものに基づいてリクエストを抑制しません。 –

+0

@ Michael-sqlbot別の説明がありますか? –

+0

実際はそうではありませんが、S3が何とか別のライブラリではなく1つのライブラリによってアクセスされることを好むという示唆は、正当な推測ではありません。 S3に出入りする方法は1つしかありません。それはREST API経由です。 S3がリクエストを抑制すると、それはまれですが、HTTPエラー「503 Slow Down」を返します。よりゆっくりと移動するだけではありません。 –

関連する問題