容量规划

容量规划是个资源管理的命题,其目标是解答运行中的系统须要多少容量以及在何时须要这些容量的问题,更简单的说法就是回答咱们须要在何时加多少机器的问题。
 
容量规划总体上是一个从上到下,再从下到上的一个过程,先是明确公司总体的目标,然后各个业务域和系统进行拆解,估算出系统的需求,然后再逐步汇总,统计出整个公司对各类机器资源的需求量和到位进度。
 

1、明确公司或系统核心指标

 
在没有明确需求以前,不该该开始容量规划。
 
以电商公司为例,主要的核心指标是日活、下单、支付,直播类app的核心指标可能就是日活、视频上传、视频观看,共享单车系统的核心指标应该是日活(pv、uv)、下单这两个,微信的主要指标是日活、我的消息的条数、公众号文章浏览数等。
 

2、肯定容量的约束条件

 
就是咱们在提供这些核心指标的的约束,大致以下。
 
对于CPU密集型的集群,咱们经常会选择TPS(每秒处理请求书)做为集群的容量指标来衡量集群的处理能力,而约束条件中则会重点关注CPU的使用率是否率先成为瓶颈;对于存储型的集群,选择流量(MB/S)做为容量指标,存储型的集群TPS依赖于业务数据大小,全部流量更适合做为表征集群的处理能力,而约束条件最早成为瓶颈的是网络流量或者IO。
 

3、推导出本身系统或业务域的主要指标


咱们负责的系统或业务做为整个公司的一个组成部分,公司核心指标中的一个或者多个必然和咱们有关系,于是能够经过公司的核心指标推导出咱们的系统或业务的主要指标。
预测容量是一个持续的过程,须要靠数学与直觉来进行精确的预测。好比公司今年的日活是2.5亿,咱们系统主要服务的调用量是3w/s。而明年公司的日活目标是5亿,咱们系统主要服务的调用量就是6w/s了,固然在实际的场景中并不彻底是线性增加的,这个时候就须要靠本身的直觉了,能够结合本身业务的实际状况乘以必定的系数。
 
细化到系统的话主要是tps、qps、db数据量、缓存数据量、网络流量等。
 

4、计算单系统的需求

 
根据二和三的具体数据,估算或者通过压测后得出单系统的具体需求
  1. 应用服务器
  2. 在线存储(关系型数据库、非关系型数据库、缓存、文件存储)
  3. 离线存储(数仓、离线计算、实时计算)
  4. 消息
  5. 其余的监控、搜索、推荐等
  6. 下游的依赖
 
最终产出大体以下的一个表格
 
预算大类
系统
规格
现有资源
新增资源
一季度
二季度
三季度
四季度
需求场景
计算逻辑
应用服务器
               
业务天然增加
1wtps/单机200
mysql
               
新项目
 
缓存
               
技术改造(提高性能、提高缓存命中率)
 

5、汇总&挤水分

 
将单个系统的需求汇总后获得整个公司或者大部分的需求,一般状况下每个系统都会给本身都申请一些资源,以避免出现资源不够的状况,这样就会整体需求会比较大。对于一些增加幅度比较大或者比较贵的资源,就会出现一个review以及pk的过程,尽可能把资源用在刀刃上。这个对于大公司更为重要,由于大公司的机器需求是以万台为规模的,涉及到的就是几亿的预算,不得不慎重。

 

 

参考资料:mysql

http://blog.csdn.net/wanglha/article/details/39135621sql

http://blog.csdn.net/hexieshangwang/article/details/49720343数据库

相关文章
相关标签/搜索