- 机器已申请,但长期未使用
- 机器处于使用状态,但资源浪费严重
- 部门整体的资源使用率无法估量
我们提出了机器利用率这个概念,来对机器的使用情况进行计算、统计和分类,提供直接有效的数据给各Owner,以期对机器的使用情况进行优化。
机器利用率是什么
机器的利用率是对一台机器的资源的使用情况的一个评价值。
目前,我们对机器资源的定义主要包含了以下四个百分比指标。
- cpu利用率
- load / (CPU核数+1)
- 物理内存使用率
- 网络流量
对以上四个指标按照如下算法进行计算,得到的百分比即为机器利用率。
Usagecurrent = Max(CPU, LOAD,MEM,NET)
根据木桶原理,最紧缺的资源决定了机器的总体利用水平, 即对四个百分比指标,取最大值,即可描述机器的利用率。
此时,我们得到的机器利用还仅仅是某一个时刻的利用率数值。由于机器的使用存在周期性,比如工作日与非工作日等,这里我们将过去两周的利用率数据进行算术平均,计算出综合利用率,用来描述机器过去两周内的综合利用率。
收集利用率数据
目前,淘宝的测试机器(包含虚拟机)已达到1000+,要管理如此规模的机器,我们需要借助工具来收集数据。
开源工具 cacti 能够稳定,及时,高效的完成这项任务。
使用cacti收集到的数据多而杂,还需要从cacti中对导出数据,提纯数据,去除无效数据,并进行汇总、入库。目前kelude使用定时任务执行工具脚本来完成这项工作。
测试环境利用率分析
从大量的机器上收集到海量的数据之后,我们就可以结合组织架构、时间、机器分类等维度来进行更详细的分析,并将这些分析后数据通过WEB 展现给用户。
按组织架构
按机器用途
按机器的使用方式划分,促进集群优化
按时间
按时间组织,体现机器的单台机器的长期使用情况,帮助使用者落实机器使用优化措施。
机器利用率相关的部署图