【问题标题】:Azure Function Host Threshold Exceeded ThreadsAzure 函数主机阈值超过线程数
【发布时间】:2019-05-29 03:33:57
【问题描述】:

我在一个消费计划上运行了多个 Azure 功能。我还设置了 API 管理。在 Api Management 内部,我们有 2 个 Web 测试,每 3-5 分钟对这些函数进行一次测试,并确保它们仍然可用且可访问。网络测试命中的端点只有以下代码。

[FunctionName("HealthCheck")]
    public static Task<HttpResponseMessage> Run([HttpTrigger(AuthorizationLevel.Anonymous, "get", Route = "healthcheck")]HttpRequestMessage req, TraceWriter log)
    {
        log.Info("Health Check Triggered");
        return Task.FromResult(req.CreateResponse(HttpStatusCode.OK));
    }

运行一段时间后,函数开始出现 503 并出现 Host Threshold Exceeded [Threads] 错误。我无法弄清楚是什么导致了这个问题。由于该功能在消费计划而不是应用服务计划上,Azure 是否有任何限制阻止它工作?提前感谢您提供任何信息。

【问题讨论】:

  • 这个帖子可能会有所帮助 - github.com/Azure/Azure-Functions/issues/973
  • 您是否已更改为新服务计划或现有服务计划?
  • 这是一个现有的计划。我们已经设置了所有功能并且一切正常,然后我们添加了 Web 测试,并在运行测试大约 14 小时后开始取消功能。我们将把它切换为应用服务计划而不是消费。

标签: azure azure-functions azure-api-management


【解决方案1】:

Host Health Monitor 功能目前仅在消耗计划中有效,其中存在这些沙盒限制。该功能默认启用,但可以通过host.jsonhealthMonitor 部分禁用/配置,例如

{
    "healthMonitor": {
        "enabled": true,
        "healthCheckInterval": "00:00:10",
        "healthCheckWindow": "00:02:00",
        "healthCheckThreshold": 6,
        "counterThreshold": 0.80
    }
}

如果您的 Function App 达到阈值,您会看到像 Host thresholds exceeded: [Threads] 这样的错误被记录下来。 Threads :线程数(限制为 512)。

更多详情可以参考这个article

【讨论】:

  • 感谢您的回复。我们决定将计划从消费计划转换为应用服务计划。
猜你喜欢
  • 2018-09-09
  • 1970-01-01
  • 1970-01-01
  • 2022-06-23
  • 1970-01-01
  • 1970-01-01
  • 2022-09-30
  • 2015-12-03
  • 1970-01-01
相关资源
最近更新 更多