秦悦明的运维笔记

容量规划

1.具体问题具体分析

首先,这是一个比较大的话题,比较宽泛,跟业务和应用,架构都有很大关系。这里单从运维角度谈几个常见的应用的容量规划。

2.数据量到底有多少?

首先一个维度是数据量的级别,到底有多少,你tb级的还是pb级的,后者就必须应用分布式存储,类似hdfs,ceph那种分布式存储。tb级的数据存放主要分两种,一种是典型的关系型数据,当然放数据库里面,比如mysql,oracle,postgresql,sqlserver等。非关系型的一般有mongodb,redis等。

3.以mysql为例来做容量规划

如果设计了单表1亿行的规模,问你需要占用多少磁盘空间,当然可以想当然的回答一个数字出来,但是这并不靠谱,有表结构了,可以在测试库里面插入模拟的1亿条数据进去,用脚本语言不是一件很困难的事情。不能随便估一个值,那不科学。完了还得考虑每天或者每个月递增多少数据,这个和业务也是紧密关联的。之后是binlog,mysql binlog记录了所有的update,insert,delete,update操作语句都记录进去,如果操作很频繁,那么产生的日志量也会非常大,也是比较难预估的。

4.很多非确定性因素

那么存在很多非确定性因素,怎么预估? 其实不好预估,企业如果你还在乎100g硬盘和500g硬盘差异的那点钱,那么只能说你不适合搞it。物理机一般都是统一采购1t硬盘,先上1t,不够往上加。关键点是操作系统层做LVS,动态扩容对应用无感知很关键!这是我个人的一点理解(很可能有问题,轻拍).