任何人都可以向我提供有关为什么我的云部署比“马力”条款下的内部部署计算机慢的原因吗?
我有一个计算密集型应用程序,它使用一个辅助角色来执行数百万次计算(并行)。
目前在Azure中,我正在测试使用Extra Large(8核,16GB)VM进行处理。平均而言,每次迭代需要45分钟,而在4核,8GB本地机器上运行的相同代码只需要15分钟。
Azure日志表明总处理器利用率为99%,但我有12GB内存空闲,因此我绝对会尝试在每次迭代时将更多数据加载到内存中。
8核只是个别非常低的规格吗?本地存储真的是本地的吗?也就是说,本地存储是否真的位于不同的物理设备上,因此从文件中获取数据并将结果写入磁盘的速度很慢?
答案 0 :(得分:4)
Scott Guthrie(Windows Azure团队的主要成员)给我
嗨伊万,
我们还有其他VM硬件配置 - 包括多进程和高内存选项。您将来会看到更多选择。
希望这有帮助,
斯科特
我的测试:(处理器时间的100%)
Lucas-Lehmer数学计算。多线程版本使用Parallel.For实现
家用电脑酷睿i7 3770K(4核x 3.5GHz)(赢8)
SINGLETHREADED(17个主要数字):11676毫秒(11.6秒)
MULTITHREADED(17个主要数字):2816毫秒(2.8秒)
Azure大型虚拟机(4核x 1.6 GHZ)(Win S 2008)
SINGLETHREADED(17个主要数字):37275 ms
MULTITHREADED 17个主要数字):10118 ms
Azure超大型虚拟机(8核x 1.6 GHZ)(Win S 2008)
SINGLETHREADED(17个主要数字):36232 ms
MULTITHREADED(17个主要数字):6498 m
工作电脑 - AMD FX 6100(6核x 3.3 Ghz)(Win 7 w upd)
SINGLETHREADED(17个主要数字):48758 ms
MULTITHREADED(17个主要数字):16486 ms
上投票赞成这个想法答案 1 :(得分:3)
我遇到了同样的问题。与我的内部部署计算机相比,我的数据库(在sql azure上)的web应用程序也非常慢。
本地服务器详细信息: - 戴尔的入门级服务器< 1000美元,4核和8GB内存。 - 服务器作为VM运行 - 甚至DB服务器位于同一服务器上(与Web服务器共享相同的硬件)
天青: - 具有8个核心的超大型服务器上的Webrole。 - SQL Azure(我想在不同的物理服务器上)
我的期望是,当我部署到azure时它会提高性能! :( 猜猜是什么,它慢了4倍(使用每次请求的分析器代码进行验证)
我很失望,我认为这是非常慢的8核心。
我在旧计算机(Intel Pentium)上运行测试。在其上安装了相同的本地VM(VMWare主机)。它甚至比天蓝色更快。
答案 2 :(得分:1)
在这里结合问题,我会尝试回答一些......
本地存储是本地存储 - 意味着在同一磁盘上,在受限制的区域中。您是否使用本地存储API来访问它?本地存储也是一次性的 - 如果您的应用程序被重新部署,本地存储中的所有数据都将丢失。如果你使用的是Azure驱动器,那么我会期待一些延迟,因为这会写入blob存储但是你没有提到它。
CPU规范在Azure网站上定义。
虽然没有更好地了解您的后台工作所遵循的架构和流程,但很难解决您的实际缓慢问题。但作为一般规则,我会惊讶地看到你指出的结果。 (您的前置机器是VM还是专用硬件?)
答案 3 :(得分:0)
我在运行分析程序繁重的代码时会发现同样的事情(即,磁盘使用率很低,而不需要太多的RAM)。我想问题是他们根据价格和核心数而不是电力来选择CPU。理论上,您应该并行化您的代码以利用所有这些核心,但有时这很难或很昂贵(在编码时间)。考虑投票more CPU power,但有时这很难或很昂贵。