一、目标
为提高阿里云资源利用率,运维会定期对阿里云资源进行资源使用情况统计,根据不同指标阈值来初步判断资源是否属于低利用率状态。
每次统计后形成输出文档,而后根据文档与相关负责人进行沟通后,进行服务下线或者服务合并操作,以提高资源利用率,节省费用。
二、指标
1、ECS指标
指标序号 | 指标名称 | 采样规则 | 计算规则 | 判断阈值 |
---|---|---|---|---|
1 | CPU使用率 | 采样间隔为900s,采样数值为平均值,1天会取到95个平均值 | 从每天95个平均值中取中位数,15天15个中位数取平均值,得到最终的15天内CPU使用率数值,作为最终指标 | 小于3% |
2 | 内存使用率 | 同上 | 同上 | 小于10% |
3 | 内网流入流量平均速率 | 同上 | 同上 | 小于500kbps |
4 | 负载 | 待定 | 待定 | 待定 |
2、SLB指标
指标序号 | 指标名称 | 采样规则 | 计算规则 | 判断阈值 |
---|---|---|---|---|
1 | 后端异常ECS实例个数 | 采样间隔为900s,采样数值为平均值,1天会取到95个平均值 | 从每天95个平均值中取平均值,15天15个平局值再取平均值,得到最终的15天后端异常ECS实例个数,作为最终指标 | 大于0 |
2 | 实例每秒最大并发连接数 | 同上 | 同上 | 小于20 |
3 | 实例每秒入包数(实例每秒入包数) | 待定 | 待定 | 待定 |
3、Pod指标
指标序号 | 指标名称 | 采样规则 | 计算规则 | 判断阈值 |
---|---|---|---|---|
1 | CPU利用率 | 待定 | 待定 | 待定 |
2 | 内存使用率 | 待定 | 待定 | 待定 |
鉴于目前处于容器化的初期,业务模块在容器化的时候都经过严格的人为控制,比如资源的申请、HPA自动伸缩等,并且有每天巡检来确定容器业务是否稳定、资源使用是否合理。故容器的定期资源利用率统计后期再考虑。
3、参考指标
就近选取节假日(例如国庆7天)或者寒暑假中的15天,作为高峰期对比参考指标,主要是考虑是否有业务会有那种短周期的大波动,为服务缩容或者服务合并作参考依据。
三、具体实施
使用Python编写脚本,每隔15天跑一次(暂定15号和30号),获取分析结果,形成输出文档。
1、ECS实施
- 暂定采用指标1和指标2来同时进行判定资源是否处于低负载状态,也可对CPU消耗型程序和内存消耗型程序单独进行判定。
- 对于指标3和指标4,可以在后续精细区分的时候,进行采集和判定。
- 判定为低负载状态的资源列入黄色名单,和相关负责人沟通后,进行业务裁撤或者合并。
- 同时,ECS会有一个已停机状态的检测,列入已停机名单,根据情况单独处理。
2、SLB实施
- 主要使用指标1进行资源是否在使用的判定
- 指标2可以作为次要考虑,考虑是否需要配置降级
3、输入文档
- 15天内ECS的CPU和内存利用率统计文档
- 15天内ECS的停机主机统计文档
- 15天内SLB的后端异常ECS实例个数和实例每秒最大并发连接数统计文档
四、说明
- 以上方案为初步方案,指标、采样规则、计算规则和判断阈值等可能需要根据实际情况微调,后续可在具体实施中再次调整和完善。
- 合并相关事宜,也可以从服务器架构上考虑下,有些用途类似的服务器,可以合并使用或者建立公用服务器,提高使用率。
五、脚本实现:
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 lxwno.1@163.com