中小型网站的容量规划纲要
目的
作为使用第三方(阿里云)的我司来说,我个人觉得很多钱是浪费了。在知乎上有人讨论自建和上云哪个省钱,其实还是要看在公有云上怎么用,公有云很多资源具有召之即来挥之即去的特性,实际上是可以最大限度的去压榨的。做容量规划的目的,很简单,向规划要资源利用率、投入产出比,算的是笔经济账。对个人而言,替公司节约几十甚至上百万的费用,这种贡献自然会得到丰厚的回报。对企业而言,节约了费用和开支,资源可以使用到其他地方,继而可以提高竞争力。所以,容量规划是必须而且重要的。
容量规划步骤
我个人构思的步骤有如下,虽不成熟,但是独立思考所得。容量规划有个前置条件,即系统的性能瓶颈已经或者大部分都被识别,在做规划的时候尽量保守一些。大致步骤和关键点:
- 确定系统资源消耗类型(计算密集耗cpu、数据密集吃内存、网络或读写密集吃io),掌握系统在某资源配置情况下,能够支持的并发数。建立各系统的并发模型。
- 掌握系统当前线上环境日常流量特征,并基于该特征制定一个流量模型。
- 基于流量模型定制一个资源的基准水位,以达到支持日常访问较合理的资源利用率。
- 核心服务的流量监控报警方案及自动扩容、缩容方案。
系统并发压测方案
采集线上流量特征,建立流量模型、生成压测模型;
笔者是电商行业,所以对于高频的营销工具也需要单独压测,比如拼团购、限时折扣、拉人应用等。这些工具都是高并发、突发性流量的主要来源。
资源利用率的判定
理论上,在系统不崩溃、响应正常的前提下,资源利用率的平均值在80-90%,是最优的利用率,它最大限度的压榨了机器的价值。但是很明显,人工构建的系统,想要达到这种级别的利用率而系统一切ok的话,可能要投入更多的研发资源来优化,对于中小企业来说,可能就有点缘木求鱼了,毕竟业务才是王道。退而求其次的话,资源利用率降低一个档次,在60-80%,就是一个比较合理的利用率(压榨)了。
利用率% | 级别 | 措施 |
---|---|---|
[0,30] | 闲置 | 缩容减支 |
[30,50] | 适当 | 观察 |
[50,70] | 合理 | 观察 |
[70,90] | 充分 | 警觉和扩容 |
[90,100] | 过量 | 必须扩容 |
监控方案
监控指标的确定:
- TCP连接指标
- 内存使用率指标
- cpu使用率指标
- 磁盘IO指标
- db的监控指标系列