【问题标题】:Server Garbage Collection on Azure App ServiceAzure 应用服务上的服务器垃圾收集
【发布时间】:2017-04-27 13:23:30
【问题描述】:

是否可以在 Azure 应用服务上使用Server Garbage Collection

我在web.config(D:\home\site\wwwroot\web.config)中设置了gcServer,如下:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <runtime>
    <gcServer enabled="true" />
  </runtime>
  <system.webServer>
    <handlers>
      <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified" />
    </handlers>
    <aspNetCore processPath=".\MyApplication.exe" arguments="" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" forwardWindowsAuthToken="false" />
  </system.webServer>
</configuration>

GCSettings.IsServerGC 仍然返回 false。

【问题讨论】:

标签: c# .net garbage-collection azure-web-app-service azure-app-service-plans


【解决方案1】:

根据this,可以看到备注:

如果未启用服务器垃圾收集,则工作站垃圾收集生效(有或没有并发收集)。服务器垃圾收集仅在多处理器计算机上可用。

默认情况下,如果您的网络应用服务计划是多处理器的,例如 B2、S2,它会自动启用 gcServer。

但是如果你的网络应用服务计划是B1,S1,它只有一个核心,它会启用工作站。

这是测试示例:

我有一个包含以下代码的页面:

string result;

        if (GCSettings.IsServerGC == true)
            result = "server";
        else
            result = "workstation";

        Response.Write(result);

然后我将 Web 应用程序发布到不同的应用程序服务计划。(B1,B2)

结果如下:

【讨论】:

  • 有什么更新吗?如果您觉得我的回答有用/有帮助。请将其标记为答案,以便其他人可以从中受益。
  • 抱歉回复晚了 - 是的,这解决了我的问题。我没有意识到服务计划选项有什么不同。
猜你喜欢
  • 1970-01-01
  • 2010-12-15
  • 2018-01-28
  • 1970-01-01
  • 2012-09-29
  • 2021-04-12
  • 1970-01-01
  • 2014-07-31
  • 2012-08-12
相关资源
最近更新 更多