《大型网站服务器容量规划》一3.4 通过回归方程规划容量

3.4 通过回归方程规划容量

回归方程是统计学里面的知识,是一种应用数学,通常属于数学专业同学研究的方向,运维人员很少用这种方法评估系统容量。下面花点时间引出回归方程在服务器容量规划中的应用,这也是本书介绍的重点。

容量规划的关键就是找出系统可承载的最大压力,然后根据极限压力再做部署规划,话说的容易,其实这往往是最困难的部分,因为它不像杯子那种容器,其容量是很直观的、可以提前确定。而服务器的性能是不好估量的,看不到摸不着,其容量只能通过实际测试才能得到。再说,我们所运维的系统可是由数以千计的机器组成的,这么多机器对系统的容量都起到决定性的作用,而且大多数情况下各个机器的性能是不一致的,一台机器的容量数据不能作为其他机器的标准,总之各服务器都有自己的极限容量。就像电池一样,有的电池容量较大,2600毫安,有的容量较小,2000毫安,因此,它们各自的续航时间是不同的。

容量评估就是用现在的数据预估未来的变化,用什么方法来预估呢?在正式回答之前,咱们还是用数据说话,先看几张监控图,也许大家就明白是怎么回事了,如图3.3所示。

图3.3中显示的是流量与整体cpu_idle之间的关系,上面的access_log_pv是每分钟的访问日志,下面的cpu_idle是每分钟的cpu_idle,大体趋势上这两张图是对称的,这两张图表明:访问量越大,CPU利用率就越高。其实不说大家也会这么想,访问量越大,相应的CPU使用率当然就越高了。其实这是在正常时的情况,在某些情况下,访问量越大,CPU使用率越低,您信不?后面我们再讲。

下面再看图3.4,这是流量与流量之间的对比,注意并不是流量与CPU利用率。

一般的网站都会有前端模块和后端模块,前端模块则是实际的流量访问入口,图3.4中的下图lighttped_log是入口模块的访问日志,上面的图front_ms_log则是后端模块的访问日志,这两个日志的时间统计粒度是一样的,都是每分钟内的访问量。front_ms_log每分钟是15个左右,lighttped_log大概是每分钟1000个,虽然这两个日志数量级差别很大,但它们在总体上的趋势是一样的,front_ms_log随lighttpd_log的变化趋势而变化,因此,这两张图中的曲线依然相似。

以上的两张大图虽然一定程度上说明了问题,但似乎还不够明显,毕竟它们展现的是入口流量与整体CPU的关系或前后端模块的流量关系,也就是监控粒度是整体。下面再看图3.5,这里的监控粒度是模块,也就是某个Server,如nginx。

图3.5中,front_ms.log是php-cgi的日志,php-cgi_proc_CPU是php-cgi的使用率,从图3.5上看这两者的关系确实明朗了很多,几乎完全是一样的趋势。这是模块pv与模块消耗的CPU对比,针对的是模块。另外说明一下,由于系统中任何一个模块的CPU使用率、或者整机的CPU利用都是由其流量驱动的,入口流量又以一定的比例分流到后端,因此,几乎是系统内的任意流量都与系统内的任意模块CPU利用率之间保持某种关系,简而言之,未必是模块自身的流量与模块自身的CPU利用率之间才呈现关联关系,也许只是这种关联关系比较明显而已。有关这一点可以通过监控图来验证,把所有机器、模块的流量和CPU监控放到一起对比,会发现趋势线是类似的。

从上面3个大图来看,这些流量都是相关的,即保持某种依赖关系,流量越大,CPU消耗、后端流量等都跟着增加,如果把这一关系用函数y=f(x)来表示的话,其中的x表示流量,y便是CPU消耗或者后端流量等相关的因素,找出x与y的关系就是容量规划设计的思想。以上图中的监控信息可以用来生成样本数据,这种由已知的样本去预估未来的变化趋势,是典型的回归应用,容量规划的核心思想就是曲线拟合。

时间: 2024-12-25 10:23:41

《大型网站服务器容量规划》一3.4 通过回归方程规划容量的相关文章

《大型网站服务器容量规划》一导读

前 言 大型网站服务器容量规划当今社会已经进入信息时代,人们足不出户,从网络上就可以获取自己需要的信息.为了满足正常的业务需求,任何一个网站都要有硬件支持,无论日访问量是一个百万级的中型网站还是上亿级的大型网站.为了正常响应用户请求,都必须提前规划好业务容量.互联网的快速发展使得网站的流量无法预估,因此,网站的运维人员必须随时监控流量,随时扩容以应对大流量带来的压力.目前业内容量规划的方法有以下几种. 一种方法是凭经验.根据以往的运维经验和目前系统的监控信息来判断是否需要扩容.这种方法明显的缺点

《大型网站服务器容量规划》一2.4 容量管理的目标与收益

2.4 容量管理的目标与收益 虽然我们在QA那里能够获取到各应用模块的性能数据,但在新项目上线或原有基础上扩容时,仍然需要每次重复评估服务稳定性,这说明我们在平时的工作中对服务系统的容量没有很直观的认识,对系统资源的可用率,我们需要量化. 为了让大家更直观地看到系统的已用率及剩余可用率,在此展开容量管理相关的工作.容量管理的主要目标用于评估各集群模块当前及未来某流量下的容量状态. 为方便陈述,我们这里所说的容量管理是指服务器容量管理. 容量管理的基本目标是以合理的硬件成本满足业务需求.其实我们平

《大型网站服务器容量规划》——2.4 容量管理的目标与收益

2.4 容量管理的目标与收益 虽然我们在QA那里能够获取到各应用模块的性能数据,但在新项目上线或原有基础上扩容时,仍然需要每次重复评估服务稳定性,这说明我们在平时的工作中对服务系统的容量没有很直观的认识,对系统资源的可用率,我们需要量化. 为了让大家更直观地看到系统的已用率及剩余可用率,在此展开容量管理相关的工作.容量管理的主要目标用于评估各集群模块当前及未来某流量下的容量状态. 为方便陈述,我们这里所说的容量管理是指服务器容量管理. 容量管理的基本目标是以合理的硬件成本满足业务需求.其实我们平

《大型网站服务器容量规划》——3.4 通过回归方程规划容量

3.4 通过回归方程规划容量 回归方程是统计学里面的知识,是一种应用数学,通常属于数学专业同学研究的方向,运维人员很少用这种方法评估系统容量.下面花点时间引出回归方程在服务器容量规划中的应用,这也是本书介绍的重点. 容量规划的关键就是找出系统可承载的最大压力,然后根据极限压力再做部署规划,话说的容易,其实这往往是最困难的部分,因为它不像杯子那种容器,其容量是很直观的.可以提前确定.而服务器的性能是不好估量的,看不到摸不着,其容量只能通过实际测试才能得到.再说,我们所运维的系统可是由数以千计的机器

《大型网站服务器容量规划》——2.2 服务器容量规划的源由

2.2 服务器容量规划的源由 为什么要做容量规划呢?当资源涉及的成本变得非常可观时,势必就需要容量规划,谁也不愿意花冤枉钱. 做运维工作的读者都应该了解SLA(Service-Level Agreement),即服务等级协议,这是关于网络服务供应商和客户间的一份协议,其中定义了服务类型.服务质量和客户付款等术语.可能我们不那么关注这份协议的细节,但我们最了解的是SLA中的"几个9",如表2.1所示. 根据产品线的重要程度,公司会将不同产品线划分成多种级别,每种级别产品线的SLA也是不同

《大型网站服务器容量规划》一2.2 服务器容量规划的源由

2.2 服务器容量规划的源由 为什么要做容量规划呢?当资源涉及的成本变得非常可观时,势必就需要容量规划,谁也不愿意花冤枉钱. 做运维工作的读者都应该了解SLA(Service-Level Agreement),即服务等级协议,这是关于网络服务供应商和客户间的一份协议,其中定义了服务类型.服务质量和客户付款等术语.可能我们不那么关注这份协议的细节,但我们最了解的是SLA中的"几个9",如表2.1所示. 根据产品线的重要程度,公司会将不同产品线划分成多种级别,每种级别产品线的SLA也是不同

《大型网站服务器容量规划》——第2章 容量规划简介2.1 什么是容量

第2章 容量规划简介 2.1 什么是容量 容量意指容量规划,从经济学到工程领域都有其应用,容量规划听起来是个高大上的概念,本质来说,其实就是资源利用率的管理,一个较典型的例子就是容器,例如我们是用水杯来接水喝,水杯总是有一个最大容量,我们所接的水肯定都在杯子容量之内,超过这个容量水就会溢出,这个道理还是很易懂的.其实在接水这个动作发出之前,我们通过观察就已经知道了杯子的最大容量是多少,所接的水必然会控制在杯子容量之内,如果一个杯子容量不够,口渴的同学可能会选择更大的杯子或者同时用两个杯子.因为这

《大型网站服务器容量规划》一2.1 什么是容量

2.1 什么是容量 容量意指容量规划,从经济学到工程领域都有其应用,容量规划听起来是个高大上的概念,本质来说,其实就是资源利用率的管理,一个较典型的例子就是容器,例如我们是用水杯来接水喝,水杯总是有一个最大容量,我们所接的水肯定都在杯子容量之内,超过这个容量水就会溢出,这个道理还是很易懂的.其实在接水这个动作发出之前,我们通过观察就已经知道了杯子的最大容量是多少,所接的水必然会控制在杯子容量之内,如果一个杯子容量不够,口渴的同学可能会选择更大的杯子或者同时用两个杯子.因为这是潜意识里的行为,尽管

《大型网站服务器容量规划》一3.3 其他容量规划方法

3.3 其他容量规划方法 1.通过经验预估容量利用监控系统,找到近期内的最大流量作为未来短期内的流量预估,如果在当时的流量压力下系统运行正常的话,可以使之作为新的容量参考.可以将半个月内的最大流量峰值作为未来一个月内的平均流量,如果该峰值下系统工作正常,这通常表明未来一个月内是不需要扩容的. 2.按比例扩充还有一种估算的方法是,按照原有系统的负载情况按比例扩充,当然这全是假设在理想的线性情况下. 如果目前流量是每天1200万PV,各子系统的平均容量是40%,一般情况下为了系统稳定都不会把容量用尽