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 ACCEPTCOMMIT 然后重启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 |
|