问题描述
APIM从标准版降级到基础版,在没有用户使用的情况,Capacity的指标平均显示在80%以上。 这是什么异常情况呢?
问题分析
APIM的容量指标(Capacity)是 API 管理实例中负载的指标。 它反映资源用量(CPU、内存)和网络队列的长度。而其中的CPU以及内存指标监控的对象不仅仅包含用于处理Proxy和Management请求的APIM进程,还包含其他选定的系统进程。
因此,即使未处理任何请求,Capacity指标也可能会出现间歇性的高峰或大于零。 之所以发生这种情况,是因为存在系统或平台特定的操作。在决定是否缩放实例时,不应考虑这些因素。
在对APIM资源进行降级的操作中,导致Capacity升高的主要因素的是 可用内存 降低。执行降级操作后可用内存由 500MB 降至 160MB 左右。在Capacity高的时间段中,通过收集APIM实例的进程信息。发现内存使用最高的3个进程分别为w3wp(IIS 服务器),APIM Management(管理操作的组件),以及APIM Proxy(处理Proxy请求的组件)。总的来说, Capacity指标异常由于降级导致内存不足而造成的,基础版(Basic sku)的内存非常有限(2GB RAM),其中还必须托管全部的APIM组件。降级操作后,单台实例上的可用内存由500MB降至160MB,反映到 Capacity这一统计指标,既是统计指标由20%左右升高至75%以上。
参考资料
APIM Capacity:https://docs.azure.cn/zh-cn/api-management/api-management-capacity#what-is-capacity