Azure API 经理在功能扩展时增加了响应时间
Azure API Manager increased response time when function scales
在使用 azure 函数对消费计划进行一些负载测试后,我 运行 进入了一个有趣的场景。现在我有一个函数应用程序,它期望在 api 管理实例后面有一个 http post。函数应用程序执行一些处理并 returns 对调用者的响应。 API 管理器暂时没有缓存,因为我们期望进程只是通过主体进行处理。
当我直接调用该函数时,该应用程序会适当缩放,并且我从该函数应用程序中看到一些冷启动行为,但从本地请求到 Azure 的持续负载平均响应时间不到 200 毫秒。
当我通过 api 管理器调用该函数并对实例施加持续负载时,我开始在负载测试的 5 分钟左右看到 30-60 秒的响应时间。
负载是每秒 2 个请求,完全异步,因此没有阻塞。此外,没有数据库调用,这只是一个计算函数。
还有其他人看到过这种行为吗?
好像是设置或者LB的问题。您可以做的是减少 host.json 中的 functionTimeout 设置(例如 20 秒),然后在 API 管理上添加重试策略。
https://docs.microsoft.com/en-us/azure/api-management/api-management-advanced-policies#example-7
在使用 azure 函数对消费计划进行一些负载测试后,我 运行 进入了一个有趣的场景。现在我有一个函数应用程序,它期望在 api 管理实例后面有一个 http post。函数应用程序执行一些处理并 returns 对调用者的响应。 API 管理器暂时没有缓存,因为我们期望进程只是通过主体进行处理。
当我直接调用该函数时,该应用程序会适当缩放,并且我从该函数应用程序中看到一些冷启动行为,但从本地请求到 Azure 的持续负载平均响应时间不到 200 毫秒。
当我通过 api 管理器调用该函数并对实例施加持续负载时,我开始在负载测试的 5 分钟左右看到 30-60 秒的响应时间。
负载是每秒 2 个请求,完全异步,因此没有阻塞。此外,没有数据库调用,这只是一个计算函数。
还有其他人看到过这种行为吗?
好像是设置或者LB的问题。您可以做的是减少 host.json 中的 functionTimeout 设置(例如 20 秒),然后在 API 管理上添加重试策略。
https://docs.microsoft.com/en-us/azure/api-management/api-management-advanced-policies#example-7