在我的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兆字节.
这让我担心 – 看起来太慢了.它应该这么慢吗?我究竟做错了什么?我可以做些什么来解决我的部署问题?
除了理查德·阿斯特伯里(Richard Astbury)所说的内容之外:超小型实例的带宽非常小,即便是小型的.你会看到约.额外的5Mbps,大约小型100Mbps(小型到超大型,每个核心大约可达100Mbps).