在我的 Azure Web 角色中OnStart()
,我需要部署该角色所依赖的大型非托管程序。该程序之前被压缩成一个 400 兆字节的 .zip 存档,拆分为每个 20 兆字节的文件并上传到一个 blob 存储容器。该程序不会改变 - 一旦上传它可以保持这种状态很长时间。
我的代码执行以下操作:
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();
}
它只是打开一个文件,然后将部分写入其中。效果很好,除了从单核(超小)实例运行时大约需要 4 分钟。这意味着平均下载速度约为每秒 1,7 兆字节。
这让我很担心——它似乎太慢了。应该这么慢吗?我究竟做错了什么?我可以做些什么来解决我的部署问题?