使用CPU百分位作容器缩容的参考指标

一、背景

基于公司的节流政策,为了减少不必要的硬件成本,各小组开始对CPU使用率较低的应用进行缩容。大部分团队都是基于内部的火眼监控平台,重点关注和缩容CPU平均使用率较低的应用,然而CPU的平均使用率会丢失一些重要信息。于是,效能部门的人,通过监控容器的数据整理出了以周为单位的CPU百分位的及其与平均值的方差的一个报表。

二、CPU百分位与SLA

CPU百分位,较之于平均值显示出了更多信息,其表现出了数据集合的信息,我们可以观察多个不同的百分位点,来获取更加全面的信息。如果把平均值比作一个点,那么百分位携带的信息则可以看作是一条线。

使用举例:

1)观察TP10,TP50,TP90,TP99之前的走向可知CPU的使用的稳定性。

2)观察TP99.99,TP99,TP90,TP50

  • 如果高位的值都很低,那么说明该应用容器的CPU闲置率较高,可通过缩容提高CPU使用率;
  • 如果高位很高,但是中位数很低,那说明该应用会存在短时间的业务洪峰,导致CPU短时间标高;此时,就要根据SLA来判断,是否要牺牲SLA来提高资源利用率。

三、思考

缩容的目标是提高资源利用率,而起初只参考CPU平均使用率,本质上是没有深入思考,CPU使用率是否能真正横量性能,是否能作为关键指标。存在思考的惰性,导致没有行之有效的方法去完成目标。以后要多问几个为什么,找个能说服自己和别人的理由才去做,也就是所谓的“做事要有方法论”,不能想当然。

# 参考

  1. https://en.wikipedia.org/wiki/Percentile
  2. https://quickbooks-engineering.intuit.com/web-performance-what-you-dont-know-will-hurt-your-customers-fd6b19b7da07

评论