apache负截低,但是访问很慢,MaxClients设置太小的原因
1. 首先要了解apache采用的MPM(Multi -Processing Modules,多道处理模块) MPM是Apache的核心,它的作用是管理网络连接、调度请求。 Apache2.0中MPM分为3种(perfork、worker、event)。perfork从Apache1.3中继承下来的,它采用的是进程管 理方式,所以它可以提供更可靠的性能和更好的兼容性;worker是Apache2.0中新增加的方式,它采用了线程控制方法,可以比perfork更节 约系统开销、处理更多的数据量,但同时兼容性并不是很好,很多旧的程序无法工作在worker下;event仍处于试验阶段,它为每个任务分配不同的进程 池,目前不应该采用。通过命令 httpd -l 可以获取目前Apache采用的是哪种MPM 本文仅针对perfork方式进行讨论
2. 了解perfork的工作方式查看Apache2.0的配置文件httpd.conf,可以看到perfork的配置段,大致如下:
ServerLimit 256
StartServers 5
MinSpareServers 10
MaxSpareServers 15
MaxClients 256
MaxRequestsPerChild 4000
当Apache被启动时,Apache会自动创建StartServers个进程,并且尽力将空闲进程数保持在MinSpareServers和MaxSpareServers之间。如果空闲进程小于MinSpareServers,Apache将会以大约每秒1个的速度新建进程。如果空闲进程大于MaxSpareServers,Apache将会删除多余的空闲进程,释放服务器资源。进程数的最大值由MaxClients控制,在Apache1.3中最大只能设置为256,但在Apache2.0中,可以通过在配置开头增加ServerLimit项目来突破256的限制,此时必须MaxClients ≤ ServerLimit ≤ 20000 MaxRequestsPerChild用来控制每个进程在处理了多少次请求之后自动销毁,这个参数可以设置为0表示无限(即不销毁进程)。
3. 优化perfork 首先,对于一个负载相对较高的网站来说,256的进程限制是不够的,如果服务器已经达到256的极限,那么接下去的访问就需要排队,这也就是为什么某些服务器负载不高,但是访问却很慢的原因之一。所以首先应该了解服务器在繁忙时的进程数量。通过命令ps -ef|grep httpd|wc -l可以了解到当前系统中Apache进程数,通过设置ServerLimit和MaxClients来达到为服务器软扩容的目的。 然后,在访问量高峰期,经常会出现的情况是突然之间发生非常多的并发连接,然后突然之间减少了很多访问。如果Apache没有准备足够数量的预备进 程,那访问只能等待Apache每秒1个的新增进程,随后又要将多余的进程删除,那Apache只能一直忙于新建和销毁进程,大大地降低了访问速度。可以适当增加StartServers、MinSpareServers、MaxSpareServers来使得Apache不需要一直忙于作无用功。
最后,强烈推荐MaxRequestsPerChild不要设置为0,设置为非0,可以保护Apache进程免遭内存泄漏的影响,因为你不知道运行在Apache上的应用程式在什么时候会出错导致内存泄漏。
设置完之后大致是这样的:
ServerLimit 1000
StartServers 30
MinSpareServers 30
MaxSpareServers 45
MaxClients 1000
MaxRequestsPerChild 4000
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/yanyongshan/archive/2010/01/20/5217606.aspx
apache性能优化(开启gzip压缩)
一、生成gzip压缩模块
Apache的gzip功能是使用mod_deflate.so模块,因此,我们先生成mod_deflate.so模块。首先从网上下载一个apache安装程序(尽量与当前使用的apache版本相同)然后解压,我们解压到了tmp目录下
#cd /tmp/httpd-2.2.11/modules/filters
#/usr/local/apache/bin/apxs -i -c -a mod_deflate.c //生成mod_deflate.so模块
这时候在Apache安装目录的modules文件夹下应该就多了一个mod_deflate.so模块文件
#ls /usr/local/apache/modules/
httpd.exp libphp5.so mod_deflate.so
二、在Apache中开启gzip压缩
打开Apache配置文件,然后添加mod_deflate.so模块
#vi /usr/local/apache/conf/httpd.conf
LoadModule deflate_module modules/mod_deflate.so
三、设置gzip压缩
打开Apache配置文件,然后添加如下三行内容
#vi /usr/local/apache/conf/httpd.conf
AddOutputFilterByType DEFLATE text/html text/php text/png text/jpg text/plain text/css text/xml text/javascript
DeflateCompressionLevel 9
SetOutputFilter DEFLATE
上述参数解释:
AddOutputFilterByTy 对什么样的内容启用GZIP压缩
DeflateCompressionLevel 表压缩级别
SetOutputFilter DEFLATE 启用deflate模块对本站点的所有输出进行GZIP压缩
四、重启Apache
转载请注明来自:LinuxSEE
Linux下apache+fastcgi+php+mysql搭建配置
1.系统必备包安装
yum -y install gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel
2.apache安装
tar zxvf httpd-2.2.17.tar.gz
cd httpd-2.2.17
./configure --prefix=/opt/apache --enable-modules=all --enable-mods-shared=all --enable-so --enable-rewrite && make && make install
##--enable-modules=all 表示将所有模块静态编译到httpd二进制文件中
##--enable-mods-shared=all 表示动态加载所有模块,如果去掉-shared,就是静态加载所有模块。(静态加载效率高,但是添加模块需重新编译apache)
##--enable-so 让apache核心装载DSO
##--enable-rewrite 打开重写功能
3.mod_fastcgi安装
tar zxvf mod_fastcgi-2.4.6.tar.gz
cd mod_fastcgi-2.4.6
cp Makefile.AP2 Makefile
make top_dir=/opt/apache install
继续阅读...
Linux下apache服务器配置技巧
1、如何设置请求等待时间
在httpd.conf里面设置:
TimeOut n
其中n为整数,单位是秒。
设置这个TimeOut适用于三种情况:
2、如何接收一个get请求的总时间
接收一个post和put请求的TCP包之间的时间
TCP包传输中的响应(ack)时间间隔
3、如何使得apache监听在特定的端口
修改httpd.conf里面关于Listen的选项,例如:
Listen 8000
是使apache监听在8000端口
而如果要同时指定监听端口和监听地址,可以使用:
Listen 192.170.2.1:80
Listen 192.170.2.5:8000
这样就使得apache同时监听在192.170.2.1的80端口和192.170.2.5的8000端口。
当然也可以在httpd.conf里面设置:
Port 80
这样来实现类似的效果。
4、如何设置apache的最大空闲进程数
修改httpd.conf,在里面设置:
MaxSpareServers n
其中n是一个整数。这样当空闲进程超过n的时候,apache主进程会杀掉多余的空闲进程而保持空闲进程在n,节省了系统资源。如果在一个apache非常繁忙的站点调节这个参数才是必要的,但是在任何时候把这个参数调到很大都不是一个好主意。
同时也可以设置:
MinSpareServers n
来限制最少空闲进程数目来加快反应速度。
继续阅读…
Linux下apache+tomcat+mod_jk配置
1.安装程序库
yum -y install gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel
2.Apache 安装:
tar zxvf httpd-2.2.8.tar.gz
cd httpd-2.2.8
./configure --prefix=/usr/local/apache2 --enable-modules=so --enable-so
make && make install
3.JDK的安装
chmod 755 jdk-6u3-linux-i586-rpm.bin
./jdk-6u3-linux-i586-rpm.bin
yes
ln -s /usr/java/jdk1.6.0_03 /usr/local/jdk
ln -s /usr/java/jdk1.6.0_03/jre /usr/local/jre
到此JDK已经安装完成
4.Tomcat的安装
tar -zxvf apache-tomcat-5.5.25.tar.gz
mv apache-tomcat-5.5.25 /usr/local/tomcat
继续阅读...
最新评论
今天有空就来看看你的站»
Post: 2012-04-29 20:03:15这个脚本不错,来学习下»
Post: 2012-04-11 03:37:35来看看你的博客,有空也去»
Post: 2012-04-07 20:04:03Great articl»
Post: 2012-02-24 05:58:40Noarmlly I'm»
Post: 2012-02-24 05:56:32Why does thi»
Post: 2012-02-24 05:52:00That's a qui»
Post: 2012-02-24 05:50:44Well macamdi»
Post: 2012-02-24 05:50:36Yours is a c»
Post: 2012-02-24 05:31:50These tpocis»
Post: 2012-02-24 05:09:11