容量规划
有效的监控能够避免绝大多数问题的扩大化,但是还是做不到防患于未然。监控告警机制完善后,就需要着手考虑容量规划(Capacity Planning)的问题。
所谓的容量规划,也就是一个公司为了满足商业目标的需求而决定生产能力的过程。俗语说,”人无远虑,必有近忧”,容量规划,需要的是”远虑”。对应到运维的工作上来,一方面是商业目标带来的容量需求,一方面是针对相关历史数据的分析带来的预测。这里的历史数据,是需要运维团队采集、整理的。(从这个角度上说),容量规划是一个长期的过程。
相关的数据保存和图表生成,基本上都会采用 RRDtool (http://oss.oetiker.ch/rrdtool/)来做。 RRDtool 也已经是业界的事实上的标准,但毕竟 RRDtool 只能算是一套引擎。而规模化的数据管理工作则需要求助其它工具,则不能不提 Cacti (http://www.cacti.net/)这是现在相当通用的做法。老牌的 MRTG 已经很少有人用了。
利用 Cacti,很容易得到一段时间内某项数据指标的变化趋势(比如网络流量的增长趋势、服务器负载的趋势等)。这是运维过程中最主要的参考数据之一,缺乏此类数据而做决策是不可想象的。
如上图,可以发现被监控的服务器上进程数量半年内的增长趋势,在 2 月份间的进程数并不高(春节期间),随后的几个月突破 4000 个进程,对于普通的服务器来说,这是比较危险的。尽管当前系统运行可能比较平稳,但运维技术人员绝对有必要考虑中期解决方案。
容量规划中的另外一个重要参考维度是 Web 访问日志的趋势图。对于中小网站来说,Awstats 足以胜任,更大一点的规模或是对统计要求更高的站点或许只能自己写统计工具了,还没听说有什么针对大型网站而且性价比好的商业工具。这里笔者要强调一下的是,商业站点尽量不要用第三方的流量统计工具,这样很容易泄漏比较关键的商业信息。
补充后记
容量规划其实远远不止这些,比如应用服务器容量规划方面、数据库容量规划,主机容量规划、存储容量规划等等,把整个架构拆成各个组件,每个组件的容量规划都是值得大书特书的一块内容。
另外一个关键点是团队的”容量规划”,团队成长这一方面如果跟不上也很容易成为瓶颈。