私の Azure Web ロールOnStart()
では、ロールが依存する巨大な管理されていないプログラムをデプロイする必要があります。このプログラムは、事前に 400 メガバイトの .zip アーカイブに圧縮されており、それぞれ 20 メガバイトのファイルに分割され、ブロブ ストレージ コンテナーにアップロードされています。そのプログラムは変更されません。一度アップロードされると、何年もそのままの状態を保つことができます。
私のコードは次のことを行います:
CloudBlobContainer container = ... ;
String localPath = ...;
using( FileStream writeStream = new FileStream(
localPath, FileMode.OpenOrCreate, FileAccess.Write ) )
{
for( int i = 0; i < blobNames.Size(); i++ ) {
String blobName = blobNames[i];
container.GetBlobReference( blobName ).DownloadToStream( writeStream );
}
writeStream.Close();
}
ファイルを開き、パーツを 1 つずつ書き込みます。単一のコア (非常に小さい) インスタンスから実行すると約 4 分かかることを除いて、うまく機能します。つまり、平均ダウンロード速度は 1 秒あたり約 1.7 メガバイトです。
これは私を心配しています-遅すぎるようです。そんなにゆっくりするべきですか?私は何を間違っていますか?展開に関する問題を解決するために、代わりに何ができますか?