【问题标题】:Enabling NUMA on IIS when migrating to Azure VMs迁移到 Azure VM 时在 IIS 上启用 NUMA
【发布时间】:2020-08-06 09:53:15
【问题描述】:

所以我正在尝试将旧版网站从 AWS VM 迁移到 Azure VM,并且我们正在尝试获得相同水平的性能。问题是我对在 IIS 上设置站点还很陌生。

该应用程序的作者早已不复存在,我们与该应用程序斗争的原因有很多。该站点的一个问题是,当它“热身”时,它会拉回大量数据以在内存中存储一​​整天。这涉及执行长时间运行的存储过程和内存进程,这意味着某些页面的首次加载最多需要 7 分钟。然后它使用内存数据和输出缓存的组合来传递页面。

会话似乎正在使用中,尽管该站点能够在一些运行时间较长的数据库操作中从数据库中恢复会话数据,因此会话最好尽可能坚持,这就是我避免使用网络花园的原因。

这是一些背景知识,但我的问题实际上是关于提高 IIS 的性能。当我在 AWS 框中查看他们的设置时,他们启用了一些名为 NUMA 的东西,似乎是默认设置,然后将最大工作进程设置为 0,这似乎启用了 NUMA。我不知道他们为什么启用 NUMA 或是否有必要,但我正在尝试尽可能接近类似的转换,如果它在这个应用程序中提供额外的性能,我们可能会需要它!

在 Azure 框中,我可以看到将最大工作进程设置为 0 的选项,但没有 NUMA 选项。我的问题是是否使用这些默认选项启用了 NUMA,或者我需要做些什么来启用 NUMA。

两者都是生产规模的 VM,但我在 Azure 上使用的是标准 D16s_v3,具有 16 个 vCore 和 64Gb RAM。我们正在对其中几个进行负载平衡。

【问题讨论】:

  • 您可能需要一位顾问来仔细检查您的 AWS VM 并在迁移之前捕获所有详细信息。我不认为在这里进行肤浅的讨论会有多大帮助。
  • 如果没有别的,只是了解 NUMA 如何与 azure VM 配合使用会有帮助

标签: azure iis virtual-machine azure-virtual-machine numa


【解决方案1】:

如果您在 Azure VM 中看不到该选项,那是因为服务器正在使用对称处理并且不支持 NUMA。

现在来优化你的加载:

  1. 巨大的警告 - 如果您有内存泄漏类型的问题,请不要这样做!为确保您不这样做,请将私有字节限制为服务器上大约 70% 的内存大小。如果您看到命中/发出 IIS 回收(默认情况下记录该事件),那么您可能希望忽略进一步的步骤。要么使用 perfmon(或者更容易地在任务管理器中迭代检查峰值字节,您必须在详细信息窗格中添加该列)
  2. 将您的应用程序池启动模式更改为:AlwaysRunning
  3. 将您的网络应用更改为 preloadenabled=true
  4. 在您的 web.config 中设置一个初始化页面(以便预加载知道要加载什么)。
  5. *Edit 忘记了一些步骤。确保您的空闲超时已清除或将其设置为午夜。
  6. 确保您没有启用默认回收时间,将其清除。
  7. 如果您想变得更漂亮,可以添加加载页面并设置 http 刷新或进一步自定义,如下所示: https://docs.microsoft.com/en-us/iis/get-started/whats-new-in-iis-8/iis-80-application-initialization

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-03-14
    • 1970-01-01
    • 2017-10-15
    • 2023-03-22
    • 2021-12-20
    • 1970-01-01
    • 2017-07-05
    相关资源
    最近更新 更多