大型网站服务器容量规划(一)
1.什么是容量?
容量是指一个系统可处理容纳的最大能力,这个能力可以简单理解为访问量,即流量。如某个网站正常情况下可承载的流量是8000万PV,超过了这个流量,用户请求的处理将受到影响,如响应变慢,或者干脆返回空白页。因此,8000万PV的访问量便是这个网站的容量。可见,网站的容量规划极其重要,如果因为容量不足而影响网站业务的话,对于互联网公司来说,给公司带来的损失很可能是很惨重的。对于一个公司来说,服务运维是保证业务稳定的核心,规划好服务的容量是保证业务稳定的前提。
2.为什么要做容量规划?
做运维工作的读者都应该了解SLA(Service-Level Agreement),即服务等级协议,这是关于网络服务供应商和客户间的一份协议,其中定义了服务类型、服务质量和客户付款等术语。
SLA等级分为1个9->90%,全年宕机时长36天12小时,3个9->99%,全年宕机时常8小时45分。一般情况下,公司服务器的总体资源利用率长期处在较低水平,CPU利用率都在20%左右,总的来看,我们有大量的计算资源和存储资源闲置,造成巨大浪费,这也直接导致我们的服务成本偏高。
3.容量规划的对象?
无论您公司是什么业务,只要业务是用计算机来承载,必然可以用计算机的物理资源消耗量作为业务量的度量,这体现在处理器、硬盘、内存、网卡、网络链接数等方面。业务量与计算机资源消耗量整体上是呈正比的。
(1)计算密集型(2)IO密集型包括网卡流量(3)数据密集型,吃内存
容量管理还可以节约人力,这体现在服务扩容方面。扩容就是在集群中增加结点,就意味着包括以下工作:
(1)服务环境部署;
(2)关联模块配置;
(3)同步定时任务;
(4)向数据中心注册;
(5)向操作中心注册;
(6)对内部系统的权限申请;
(7)代码同步;
(8)数据同步;
(9)开启服务;
(10)qa回归测试;
(11)应用上线。
为减少盲目扩容时付出的人力成本,提前知道目前的系统还能支撑多久。比如在节假日时流量会增长,为保证服务稳定,只好按经验添加机器。
总结,容量管理系统给我们带来的收益如下。
(1)科学地评估系统所用的资源是否合理。
(2)科学地预测未来资源的增长,并进行合理的预算采购。
(3)运维人员以科学的方法对资源进行有效管理,这包括优化集群中结点机器数量,预知服务可承载的最大压力,预知系统何时性能燃尽等。
4.容量的规划方法:
目前开源的监控系统有很多,如cacti、zabbix等,大多数监控系统都是以图表方式展示监控指标
大多数监控系统都是基于SNMP(Simple Network Management Protocol),即简单网络管理协议。
但是以上这些还远远无法满足我们日常监控的需求
比如 关键字的日志监控(error,warn等),端口监控,语义监控,结构体监控
如何测试自身系统的性能?
通过压力测试LoadRun,Jmeter等(测试术语,压力测试,UAT测试,自动化脚本测试,全链路测试,混合压力测试)
如果目前流量是每天1200万PV,各子系统的平均容量是40%,一般情况下为了系统稳定都不会把容量用尽(100%),都会预留20%左右的buffer,因此,认为80%便是极限利用率了。80%减去40%后还剩下40%,也就是说目前系统还能承受一倍的流量,也就是2400万PV算是极限了。要是预估新的流量压力是十倍的话,至少将原有系统的规模扩充为现在的5倍。
通过回归方程规划容量?
相关关系
在回归分析中很重要的一个概念就是相关关系,具有相关性的样本是能够得到理想公式的前提。
相关性在总体上来说就是一种相互依赖、相互制约的关系。这是在人类社会和自然界中都普遍存在的一种现象:一些事物的发展伴随着另外一些事物的发展,当另外那些事物发展得很好时,这些事物也会有很好的发展,反之亦然