【问题标题】:Azure compute power: Extra Large VM slowAzure 计算能力:超大型 VM 速度慢
【发布时间】:2012-02-10 00:40:32
【问题描述】:

谁能告诉我为什么我的云部署会比“马力”方面的本地计算机慢?

我有一个计算密集型应用程序,它使用工作者角色来执行数百万次计算(并行)。

目前在 Azure 中,我正在测试使用超大型(8 核,16GB)VM 来进行处理。平均而言,每次迭代需要 45 分钟,而在 4 核、8GB 本地机器上运行相同的代码只需要 15 分钟。

Azure 日志显示总处理器利用率为 99%,但我有 12GB 可用内存,因此我肯定会尝试在每次迭代时将更多数据加载到内存中。

这 8 个内核是否只是单独非常低的规格?本地存储真的是本地的吗?也就是说,本地存储是否真的在不同的物理设备上,因此从文件中获取数据并将结果写入磁盘很慢?

【问题讨论】:

    标签: azure


    【解决方案1】:

    Scott Guthrie(Windows Azure 团队的主要负责人)对我说
    嗨,伊万,

    我们还有其他 VM 硬件配置 - 包括多进程和高内存选项。将来您会看到更多选择。

    希望这会有所帮助,

    斯科特


    我的测试:(100% 的处理器时间)

    Lucas-Lehmer 数学计算。多线程版本使用Parallel.For实现

    家用电脑 Core i7 3770K(4 核 x 3.5GHz)(Win 8)

    单线程(17 个主号码):11676 毫秒(11.6 秒)

    多线程(17 个主号码):2816 毫秒(2.8 秒)

    Azure 大型 VM(4 核 x 1.6 GHZ)(Win S 2008)

    单线程(17 个主号码):37275 毫秒

    多线程 17 个主要数字):10118 毫秒

    Azure 超大型 VM(8 核 x 1.6 GHZ)(Win S 2008)

    单线程(17 个主号码):36232 毫秒

    多线程(17 个主数):6498 m

    工作电脑 - AMD FX 6100(6 核 x 3.3 Ghz)(Win 7 w upd)

    单线程(17 个主号码):48758 毫秒

    多线程(17 个主要数字):16486 毫秒

    在首页为这个想法投票http://www.mygreatwindowsazureidea.com/forums/34192-windows-azure-feature-voting/suggestions/3622286-upgrade-windows-azure-processor-from-1-6-ghz-to-mi

    【讨论】:

    • 您的家用电脑胜过一切!我们可以租用您的家用电脑吗?
    【解决方案2】:

    我遇到了同样的问题。与我的本地计算机相比,我的带有数据库的 Web 应用程序(在 sql azure 上)也非常慢。

    本地服务器详情: - 戴尔的入门级服务器

    天蓝色: - 具有 8 核的超大型服务器上的 Webrole。 - SQL Azure(我猜在不同的物理服务器上)

    我的期望是当我部署到 azure 时它会提高性能! :( 猜猜看,它慢了 4 倍(使用记录每个请求的分析器代码验证)

    我很失望,我觉得 8 核真的很慢。

    我在旧电脑(Intel Pentium)上运行了测试。在该(VMWare 主机)上安装了相同的本地虚拟机。它甚至比天蓝色还要快。

    【讨论】:

      【解决方案3】:

      这里有几个问题,我会试着回答一些......

      本地存储是本地的 - 意味着在同一个磁盘上,在一个受限区域中。您是否使用本地存储 API 来访问它?本地存储也是一次性的 - 如果您的应用程序被重新部署,本地存储中的所有数据都会丢失。如果您使用的是 Azure 驱动器,那么是的,我预计会出现一些延迟,因为这会写入 blob 存储,但您没有提到这一点。

      CPU 规格在 Azure 网站上定义。

      如果不更好地了解您的后台工作所遵循的架构和流程,则很难解决您实际的缓慢问题。但作为一般规则,我会惊讶地看到你所指示的结果。 (您的本地机器是虚拟机还是专用硬件?)

      【讨论】:

      • 是的,我通过 API 使用本地存储。波动性对我来说不是问题。我从 blob 存储复制输入数据集,将中间结果写入本地存储,然后最终输出回 blob。我想我必须添加更多跟踪信息来确定我是受计算还是受 IO 限制。
      【解决方案4】:

      在运行需要大量分析的代码时,我发现了同样的情况(即磁盘使用量很少,不需要太多 RAM)。我想问题是他们根据价格和核心数量而不是功率来选择 CPU。理论是您应该并行化您的代码以利用所有这些内核,但有时这很难或昂贵(在编码时间)。考虑为more CPU power 投票,但有时这很难或很昂贵。

      【讨论】:

      • 我怀疑你是对的(很多低功耗内核)。我的代码是高度并行的。在这方面,我发现 PLINQ 扩展有很大的推动作用。最终,尽管这只允许我通过处理器进行扩展,而看起来我需要跨多个工作角色进行扩展。 :-(
      • 同样的问题:(我的 python 代码使用 numba 优化并行计算)在 2011 年的家用计算机 4 核(i5-3570 3.6 Ghz)上比具有 24 个 E2 核的 Google 云 VM 快两倍。 ..12 倍的时间在云上慢。有什么意义?
      猜你喜欢
      • 2023-04-07
      • 2017-09-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-17
      • 1970-01-01
      相关资源
      最近更新 更多