分享

apache调优

 用勿龍潛 2012-09-09

apache调优

红色字体为需要记忆快捷键ctrl+shift+Memory,蓝色注解字体快捷键ct+sh+Caption,黄色是为红色字体注解,脚本文件快捷键ct+sh+Shell

系统调整

安装完成apache后,作如下调整:

[root@centos55 ~]#chkconfig --level 235 httpd on   #235级别上面启动httpd服务,然后可以看到/etc/rc3.d下面已经有了相关文件

[root@centos55 sysconfig]# netstat –tln    #查看对外开放端口号,t-tcp指明协议,l-listening指明正在监听的端口,n-number列出端口的数字而不是协议

 [root@centos55 ~]# vi /etc/sysconfig/iptables     # 这里是防火墙的配置文件内容

*filter     # filter表格

:INPUT DROP [0:0]    #input全部丢弃

:FORWARD ACCEPT [0:0]  

:OUTPUT ACCEPT [0:0]    #output全部接收

-A INPUT -p tcp --dport 22-j ACCEPT    #-A append 添加 –p protocol 协议 –dport 目标端口号  -j jump 意思是所有input中协议为tcp目标端口为22的数据包接收

-A INPUT -p tcp --dport 80 -j ACCEPT   #input中tcp协议目标端口80的数据包接收

-A INPUT -p udp --sport 53 -j ACCEPT   #允许域名解析结果进来 

-A INPUT -p icmp -j ACCEPT    #input中icmp协议全部接受,即相应ping包

 -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT 

COMMIT

然后重启iptables服务

apache参数调整

apache的配置文件为/etc/httpd/conf/httpd.conf ,参数调整主要就在这个文件中进行。

apache网站的内容目录为/var/www/html/

secureCRT里面sz命令可以上传,rz filename可以下载服务器文件到设置的本地目录

修改默认页面文件

为了测试,我们这里另存为http://www.的页面上传到服务器的/etc/www/html/google.htm做测试

 [root@centos55 ~]# vi /etc/httpd/conf/httpd.conf

# DirectoryIndex: sets the file that Apache will serve if a directory

# is requested.

#

# The index.html.var file (a type-map) is used to deliver content-

# negotiated documents.  The MultiViews Option can be used for the

# same purpose, but it is much slower.

#

DirectoryIndex Google.htm index.html index.html.var   #在此文件中搜索DirectoryIndex然后加入网站默认页面文件名即可

linux 下apache的工作模式MPM

此部分引用http:///5lsy8整理 

http:///xRSyg

 

MPM为Multi -Processing Modules,多道处理模块

[root@centos55 ~]# httpd –l    #此命令即可看到工作模式,prefork.c即为prefork-Unix工作模式

prefork.c模块(一个非线程型的、预派生的MPM)

 prefork MPM 使用多个子进程,每个子进程只有一个线程。每个进程在某个确定的时间只能维持一个连接。在大多数平台上,Prefork MPM在效率上要比Worker MPM要高,但是内存使用大得多。prefork的无线程设计在某些情况下将比worker更有优势:他能够使用那些没有处理好线程安全的第三方模块,并 且对于那些线程调试困难的平台而言,他也更容易调试一些。

[root@centos55]# vi /etc/httpd/conf/httpd.conf      

# prefork下的参数调优

# prefork MPM

# StartServers: number of server processes to start

# MinSpareServers: minimum number of server processes which are kept spare

# MaxSpareServers: maximum number of server processes which are kept spare

# ServerLimit: maximum value for MaxClients for the lifetime of the server

# MaxClients: maximum number of server processes allowed to start

# MaxRequestsPerChild: maximum number of requests a server process serves

<IfModule prefork.c>

#ServerLimit   20000       #上面有这个参数的英文释义。默认的MaxClient最大是256个线程,假如想配置更大的值,就的加上ServerLimit这个参数。20000是ServerLimit这个参数的最大值。假如需要更大,则必须编译apache,此前都是无需重新编译Apache。生效前提:必须放在其他指令的前面

StartServers       8         #指定服务器启动时建立的子进程数量,[root@centos55 ~]# ps -aux|grep httpd命令查看到进程就是这里的8个。

MinSpareServers    5         #指定空闲子进程的最小数量,假如当前空闲子进程数少于MinSpareServers ,那么Apache将以最大每秒一个的速度产生新的子进程。此参数不宜设的太大

MaxSpareServers   20       #配置空闲子进程的最大数量,假如当前有超过MaxSpareServers数量的空闲子进程,那么父进程将杀死多余的子进程。此参数不宜设的太大。假如您将该指令的值配置为比MinSpareServers小,Apache将会自动将其修改成"MinSpareServers+1"。

ServerLimit      256 

MaxClients       256     #限定同一时间客户端最大接入请求的数量(单个进程并发线程数),任何超过MaxClients限制的请求都将进入等候队列,一旦一个链接被释放,队列中的请求将得到服务。要增大这个值,您必须同时增大ServerLimit

MaxRequestsPerChild  4000       #每个子进程在其生存期内允许伺服的最大请求数量,到达MaxRequestsPerChild的限制后,子进程将会结束。假如MaxRequestsPerChild为"0",子进程将永远不会结束。将MaxRequestsPerChild配置成非零值有两个好处:1.能够防止(偶然的)内存泄漏无限进行,从而耗尽内存。 2.给进程一个有限寿命,从而有助于当服务器负载减轻的时候减少活动进程的数量。

 </IfModule>

worker.c模块(支持混合的多线程多进程的多路处理模块)

 worker MPM 使用多个子进程,每个子进程有多个线程。每个线程在某个确定的时间只能维持一个连接。通常来说,在一个高流量的HTTP服务器上,Worker MPM是个比较好的选择,因为Worker MPM的内存使用比Prefork MPM要低得多。但worker MPM也由不完善的地方,假如一个线程崩溃,整个进程就会连同其任何线程一起"死掉".由于线程共享内存空间,所以一个程式在运行时必须被系统识别为"每 个线程都是安全的"。

 

ServerLimit   50       #服务器允许配置的进程数上限。这个指令和ThreadLimit结合使用配置了MaxClients最大允许配置的数值。任何在重启期间对这个指令的改变都将被忽略,但对MaxClients的修改却会生效。

ThreadLimit 64       #每个子进程可配置的线程数上限。这个指令配置了每个子进程可配置的线程数ThreadsPerChild上限。任何在重启期间对这个指令的改变都将被忽略,但对ThreadsPerChild的修改却会生效。默认值是"64".

StartServers 3        #服务器启动时建立的子进程数,默认值是"3"。

MinSpareThreads 75        #最小空闲线程数,默认值是"75"。这个MPM将基于整个服务器监控空闲线程数。假如服务器中总的空闲线程数太少,子进程将产生新的空闲线程。

MaxSpareThreads 250      #配置最大空闲线程数。默认值是"250"。这个MPM将基于整个服务器监控空闲线程数。假如服 务器中总的空闲线程数太多,子进程将杀死多余的空闲线 程。MaxSpareThreads的取值范围是有限制的。Apache将按照如下限制自动修正您配置的值:worker需要其大于等于 MinSpareThreads加上ThreadsPerChild的和

MaxClients 400       #允许同时伺服的最大接入请求数量(最大线程数量)。任何超过MaxClients限制的请求都将进入等候 队列。默认值是"400",16 (ServerLimit)乘以25(ThreadsPerChild)的结果。因此要增加MaxClients的时候,您必须同时增加 ServerLimit的值。

ThreadsPerChild 25      #每个子进程建立的常驻的执行线程数。默认值是25。子进程在启动时建立这些线程后就不再建立新的线程了。

MaxRequestsPerChild 0     #配置每个子进程在其生存期内允许伺服的最大请求数量。到达MaxRequestsPerChild的限制后,子进程将会结束。假如MaxRequestsPerChild为"0",子进程将永远不会结束。对于KeepAlive链接,只有第一个请求会被计数。事实上,他改变了每个子进程限制最大链接数量的行为。 

ApacheBench可以压力测试apache。ab.exe

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多