恢复运行
创建服务
启动 >Linux、 Apache、MySQL 和 PHP(或 Perl)是许多 Web 应用程序的 LAMP 架构的基础。有很多基于 LAMP 组件的开源软件包可用于解决各种各样的问题。随着应用程序负载的增加,底层基础设施的瓶颈也会越来越明显,其表现形式就是响应用户请求的速度变慢。
上一篇文章 展示了调优 Linux 系统的方法,还介绍了 LAMP 和性能度量的基础知识。本文重点关注 Web 服务器组件:Apache 和 PHP。
调优 Apache
Apache 是一种高度可配置的软件。它具有大量特性,但每一种都代价高昂。从某种程度上来说,调优 Apache 来说就是以恰当的方式分配资源,还涉及到将配置简化为仅包含必要内容。
配置 MPM
Apache 是模块化的,因为可以轻松添加和移除特性。在 Apache 的核心,多处理模块(Multi-Processing Module,MPM)提供了这种模块化功能性 —— 管理网络连接、调度请求。MPM 使您能够使用线程,甚至能够将 Apache 迁移到另外一个 *** 作系统。
每次只能有一个 MPM 是活动的,必须使用 --with-mpm=(worker|prefork|event) 静态编译。
每个请求使用一个进程的传统模型称为 prefork。较新的线程化模型称为 worker,它使用多个进程,每个进程又有多个线程,这样就能以较低的开销获得更好的性能。最新的 event MPM 是一种实验性的模型,为不同的任务使用单独的线程池。要确定当前使用的是哪种 MPM,可执行 >
计算模型:
每台服务器每秒处理请求的数量=((80%总PV量)/(24小时60分60秒40%)) / 服务器数量 。
其中关键的参数是80%、40%。表示一天中有80%的请求发生在一天的40%的时间内。24小时的40%是96小时,有80%的请求发生一天的96个小时当中(很适合互联网的应用,白天请求多,晚上请求少)。 简单计算的结果:
((80%500万)/(24小时60分60秒40%))/1 = 1157个请求/秒
((80%100万)/(24小时60分60秒40%))/1 = 231个请求/秒
现在我们在做压力测试时,就有了标准,如果你的服务器一秒能处理1157个请求,就可以承受500万PV/每天。如果你的服务器一秒能处理231个请求,就可以承受100万PV/每天
有人说以上条件我都满足了,但实际性能还是达不到目标。这时请注意你对外的网络的带宽,在国内服务器便宜但带宽很贵,很可能你在机房是与大家共享一条100M的光纤,实际每个人可分到2M左右带宽。再好一点5M,再好一点双线机房10M独享,这已经很贵了(北京价格)。
一天总流量:每个页面20k字节100万个页面/1024=19531M字节=19G字节,
19531M/96小时=2034M/小时=578K字节/s 如果请求是均匀分布的,需要5M(640K字节)带宽(5Mb=640KB
注意大小写,b是位,B是字节,差了8倍),但所有请求不可能是均匀分布的,当有高峰时5M带宽一定不够,X2倍就是10M带宽。10M带宽基本可以满足要求。
以上是假设每个页面20k字节,基本不包含,要是包含就更大了,10M带宽也不能满足要求了。
具体设置:
第一步:启用MPM模块配置文件
我们需要在>
# Server-pool management (MPM
specific)Include conf/extra/>
第二步:启用MPM模块后找到配置文件进行编辑。
在Apace安装c:\ chaodiquancom \conf\extra目录中有一个名为>
第三步:此时,我们就需要根据当前Apache服务器所使用的MPM模块,来修改对应节点下的参数配置。首先,我们来看看mpm_winnt模块下的默认配置:
#由于mpm_winnt模块只会创建1个子进程,因此这里对单个子进程的参数设置就相当于对整个Apache的参数设置。
ThreadsPerChild 150 #推荐设置:小型网站=1000 中型网站=1000~2000
大型网站=2000~3500MaxRequestsPerChild 0 #推荐设置:小=10000 中或大=20000~100000
对应的配置参数作用如下:ThreadsPerChild
每个子进程的最大并发线程数。
MaxRequestsPerChild
每个子进程允许处理的请求总数。如果累计处理的请求数超过该值,该子进程将会结束(然后根据需要确定是否创建新的子进程),该值设为0表示不限制请求总数(子进程永不结束)。
该参数建议设为非零的值,可以带来以下两个好处:
可以防止程序中可能存在的内存泄漏无限进行下去,从而耗尽内存。
给进程一个有限寿命,从而有助于当服务器负载减轻的时候减少活动进程的数量。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)