容量规划是个资源管理的命题,其目标是解答运行中的系统需要多少容量以及在什么时候需要这些容量的问题,更简单的说法就是回答我们需要在什么时候加多少机器的问题。
容量规划模型
容量水位是一种常用的容量规划模型,其定义为:集群流量 / 集群性能 x 100%
容量水位模型把容量规划问题转化为两个方面,即
1. 系统的能力(集群性能)是多少?通过线上压测回答
2. 系统的负荷(集群流量)是多少?通过线上监控回答
通过预定义安全水位、加机器水位等水位线,当集群负荷达到特定水位线时采取相应的措施。
线上压测
集群性能 = 单机性能 x 集群机器数
通过线上压测可以得到单机性能,进行线上压测前需要明确几个问题
1. 用什么来描述系统的性能?TPS还是网络流量,根据具体业务具体分析,关键是它能真正反映实际性能
2. 选取的性能指标能够方便地监控吗?
3. 用什么样的标准来度量最大性能?比如CPU达到80%,响应时间超过1s
线上监控
根据选取的性能指标,监控当前系统的运行情况,记录其变化趋势
依赖容量
系统各个部分存在一定的依赖关系。从业务上理解,即最靠近用户的入口调用会转化为中间层和底层系统上的调用。
一定的用户访问模式,能够得到其调用链路上的调用比例或依赖系数。故假设用户访问模式基本固定,我们只要设定(推广活动前)前端系统的容量目标,就能推算出其依赖的中间层和底层系统的容量目标,从而进行所有依赖系统的容量规划。
容量规划是受到业务模式或访问模式影响的,而这种影响是一直变化的,我们需要定期的修正这种变化,才能保证容量规划结果的正确性。