`
lelong
  • 浏览: 548323 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Apache参数设置

阅读更多

以prefork模式为例来说明参数的设置,其缺省设置一般如下:

<IfModule mpm_prefork_module>

         ServerLimit                      2000
         StartServers               5
         MinSpareServers            5
         MaxSpareServers           10
         MaxClients               150
         MaxRequestsPerChild        0
</IfModule>

#有这个参数就不必像apache1一样修改源码才能修改256客户数的限制,听讲要放到最前面才会生效,2000是这个参数的最大值
ServerLimit 2000


#指定服务器启动时建立的子进程数量,prefork默认为5。
StartServers 5

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

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

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

#每个子进程在其生存期内允许伺服的最大请求数量,默认为10000.到达MaxRequestsPerChild的限制后,子进程将会结束。如果MaxRequestsPerChild为"0",子进程将永远不会结束。
MaxRequestsPerChild 0

prefork 控制进程在最初建立“StartServers”个子进程后,为了满足MinSpareServers设置的需要创建一个进程,等待一秒钟,继续创建两个,再等待一秒钟,继续创建四个……如此按指数级增加创建的进程数,最多达到每秒32个,直到满足MinSpareServers设置的值为止。这种模式可以不必在请求到来时再产生新的进程,从而减小了系统开销以增加性能。


MaxSpareServers设置了最大的空闲进程数,如果空闲进程数大于这个值,Apache会自动kill掉一些多余进程。这个值不要设得过大,但如果设的值比MinSpareServers小,Apache会自动把其调整为 MinSpareServers+1。如果站点负载较大,可考虑同时加大MinSpareServers和MaxSpareServers。


MaxRequestsPerChild设置的是每个子进程可处理的请求数。每个子进程在处理了“MaxRequestsPerChild”个请求后将自动销毁。0意味着无限,即子进程永不销毁。虽然缺省设为0可以使每个子进程处理更多的请求,但如果设成非零值也有两点重要的好处:

1、可防止意外的内存泄漏。

2、在服务器负载下降的时侯会自动减少子进程数。

因此,可根据服务器的负载来调整这个值。


MaxClients是这些指令中最为重要的一个,设定的是 Apache可以同时处理的请求,是对Apache性能影响最大的参数。其缺省值150是远远不够的,如果请求总数已达到这个值(可通过ps -ef|grep httpd|wc -l来确认),那么后面的请求就要排队,直到某个已处理请求完毕。这就是系统资源还剩下很多而HTTP访问却很慢的主要原因。虽然理论上这个值越大,可以处理的请求就越多,但Apache默认的限制不能大于256。ServerLimit指令无须重编译Apache就可以加大MaxClients。


注意,虽然通过设置ServerLimit,我们可以把MaxClients加得很大,但是往往会适得其反,系统耗光所有内存。以一台服务器为例:内存2G,每个apache进程消耗大约0.5%(可通过ps aux来确认)的内存,也就是10M,这样,理论上这台服务器最多跑200个apache进程就会耗光系统所有内存,所以,设置MaxClients要慎重。

模块安装应该取最小集合:http://hi.baidu.com/thinkinginlamp/blog/item/d677cffc1e083d83b901a016.html

 


再来看看work模式,缺省参数一般如下:

<IfModule mpm_worker_module>
         StartServers               2
         MaxClients               150
         MinSpareThreads           25
         MaxSpareThreads           75
         ThreadsPerChild           25
         MaxRequestsPerChild        0
</IfModule>

Worker 由主控制进程生成“StartServers”个子进程,每个子进程中包含固定的ThreadsPerChild线程数,各个线程独立地处理请求。同样,为了不在请求到来时再生成线程,

MinSpareThreads和MaxSpareThreads设置了最少和最多的空闲线程数;而MaxClients 设置了同时连入的clients最大总数。如果现有子进程中的线程总数不能满足负载,控制进程将派生新的子进程。

MinSpareThreads和 MaxSpareThreads的最大缺省值分别是75和250。这两个参数对Apache的性能影响并不大,可以按照实际情况相应调节。

ThreadsPerChild是worker MPM中与性能相关最密切的指令。

ThreadsPerChild的最大缺省值是64,如果负载较大,64也是不够的。这时要显式使用 ThreadLimit指令,它的最大缺省值是20000。

Worker模式下所能同时处理的请求总数是由子进程总数乘以ThreadsPerChild 值决定的,应该大于等于MaxClients。如果负载很大,现有的子进程数不能满足时,控制进程会派生新的子进程。默认最大的子进程总数是16,加大时也需要显式声明ServerLimit(最大值是20000)。需要注意的是,如果显式声明了ServerLimit,那么它乘以 ThreadsPerChild的值必须大于等于MaxClients,而且MaxClients必须是ThreadsPerChild的整数倍,否则 Apache将会自动调节到一个相应值。

 

分享到:
评论

相关推荐

    Apache FtpServer配置详解

    从零开始介绍Apache FtpServer,并一步一步教你配置Apache FtpServer,更高级的应用,教你用写代码控制Apache FtpServer及集成到自己的应用中 &lt;!--ftp端口 --&gt; &lt;!--绑定的服务器IP地址,多网卡的时候使用...

    Apache服务器配置与管理视频教程

    教程名称: Apache服务器配置与管理视频教程【】linux-Apache 安装配置指南.zip【】第二讲Apache的目录结构和配置指令.zip【】第三讲Apache服务器的参数设置.zip【】第四讲Apache服务器中使用配置段.zip【】第五讲...

    Apache的配置文件http.conf参数含义详解

    apache中各个参数的意义及参数的设置

    常见的6种以上高并发处理有效措施

    对于大型网站来说,本资源提供的6种办法可能都会被同时使用到,具体实现过程中很多细节还需要大家慢慢熟悉和体会,有时一个很小的squid参数或者apache参数设置,对于系统性能的影响就会很大,希望大家一起讨论,达到...

    Linux Apache服务器系统的设置与优化

    新版本的Apache将原来httpd.conf、srm.conf与 access.conf中的所有配置参数均放在了一个配置文件 httpd.conf中,因此只需要调整这个文件中的设置。本文基于redhat 7.2 下的httpd.conf为例,解释Apache服务器的各个...

    Apache服务配置文件讲解

    文档描述了怎样配置Apache服务以及对其中各种参数的更改。

    apache安装详解

    搭建apache负载均衡,安装apache软件,已经设置apache相关参数

    网站安全狗apache V3.1版

    网站安全狗apache版是一款集网站内容安全防护、 ...8、修改CC参数,默认设置为10S内100次,避免误拦截问题 9、修改IP黑白名单导入/导出的文件格式,支持与服务器狗互导 10、优化防盗链的判断逻辑,并美化防盗链拦截页面

    tomcat6.0 修改启动内存设置 java jvm参数配置

    在/usr/local/apache-tomcat-5.5.23/bin目录下的catalina.sh 添加:JAVA_OPTS='-Xms512m -Xmx1024m' 要加“m”说明是MB,否则就是KB了,在启动tomcat时会报内存不足。 -Xms:初始值 ...重起tomcat服务,设置生效

    apache反向代理

    ①要支持最多为1024个客户的同时请求,不仅需要更改上面提到的源文件,在编译安装后还需要设置/usr/local/apache/conf/httpd.conf文件,将其中的“MaxClients”一行后面的参数更改为“1024”。 ②如果您仅仅为了...

    Apache2 httpd.conf 中文版

    定义主要或者默认服务参数的指令,也为所有虚拟主机提供默认的设置参数 #3. 虚拟主机的设置参数 # #配置和日志文件名:如果你指定的文件名以“/”开始(win32下以“dirver:/”), #服务器将使用绝对路径,如果...

    Apache 并发优化设置方法

    Apache优化步骤: 1、先查看apache的运行模式,查看命令: httpd -l Compiled in modules:  core.c  prefork.c  http_core.c  mod_so.c  这里可以看到运行模式是prefork模式。 2、修改apache 的httpd.conf 配置...

    基于apache commons.fileupload的文件上传组件,改进了上传速度

    使用本程序时,注意上传端的参数设置,文件路径在前,文件附件在后,一次上传一个文件 StringPart filePathPart = new StringPart("filePath", "111/"+targetFile.getName(), "utf-8"); FilePart part = new ...

    花费数个小时编译成功的 apache-atlas-2.1.0-bin.tar.gz

    Apache Atlas编译时间太长,编译经常报错? 这里有一个编译成功的 apache-atlas-2.1.0-bin.tar.gz,内置Hbase和...根据自己的条件设置参数 进入 自定义的文件夹/apache-atlas-2.1.0/bin 运行 python atlas_start.py启动

    如何设置BIOS参数

    如何设置BIOS参数 ,BIOS视频 apache URL重写技术

    apache 采用C语言的模块开发

    //ap_send_error_response函数第二个参数设置为NULL(既0) ap_send_error_response(r, 0); //处理掉子请求 ap_update_child_status(r-&gt;connection-&gt;sbh, SERVER_IDLE_KILL, r); 就可以正确跳转...

    apache httpd_汉化

    定义主要或者默认服务参数的指令,也为所有虚拟主机提供默认的设置参数 #3. 虚拟主机的设置参数 # #配置和日志文件名:如果你指定的文件名以“/”开始(win32下以“dirver:/”), #服务器将使用绝对路径,如果...

    Apache Benchmark(简称ab压力测试工具) 是Apache安装包中自带的压力测试工具 ,简单易用

    -p 即postfile,发送POST请求时需要上传的文件,此外还必须设置-T参数。 -u 即putfile,发送PUT请求时需要上传的文件,此外还必须设置-T参数。 -T 即content-type,用于设置Content-Type请求头信息,例如:...

    Apache上传文件500错误的解决方法

    打开Apache的httpd.conf配置文件,在这个文件里增加下面的参数设置即可。 代码如下:MaxRequestLen 10240000我这里设置为10M,比PHP上传默认最大值8M略大即可。你可以根据自己的需要,调整这个参数的值,注意这个参数...

    apache与tomcat负载集群的3种方法.docx

    关于apache整合tomcat后的一些参数设置,实现一个tomcat的集群,我自己实现过了

Global site tag (gtag.js) - Google Analytics