`

Apache httpd的最大连接数公道设置

 
阅读更多

新设备的办事器,带宽 是2M ,apache httpd上传的速度比速度大很多,一向不解原因。 


并且,apache httpd 链接数一旦跨越200以上,网页打开速度就超等慢。希罕愁闷。莫非本身买了办事器还不如虚拟空间的!熬煎中,于是上彀搜刮了一下,成果如下:固然经过批改,如同有一些变更了,然则如同apache httpd链接数一跨越200网页打开速度依然很慢,莫非真的是带宽太低吗?设置了apache 缓存 也按下面的设置了 apache httpd 最大链接数。愁闷中! 

新买了办事器,有一个网站在耳目数增多,接见时很慢。初步认为是办事器带宽太低,但经反复测试,一旦连接上,络续点击同一个页面上不合的链接,都能敏捷打开,这种现象就是申明apache最大连接数已经满了,新的访客只能列队守候有余暇的链接,而若是一旦连接上,在keeyalive 的存活时候内(KeepAliveTimeout,默认5秒)都不消从头打开连接,是以解决的办法就是加大apache的最大连接数。 

1.在哪里设置? 

apache 2.24,应用默认设备,默认最大连接数是150 

起首在httpd.conf中加载httpd-mpm.conf设备(去掉前面的注释): 
# Server-pool management (MPM specific) 
Include conf/extra/httpd-mpm.conf 

可见的MPM设备在Apache2.2/conf/extra/httpd-mpm.conf,但里面按照httpd的工作模式分了很多块,哪一部才是当前httpd的工作模式呢?可经由过程履行 apachectl -l 来查看: 
Compiled in modules: 
core.c 
prefork.c 
http_core.c 
mod_so.c 

所以批改连接数就在Apache2.2/conf/extra/httpd-mpm.conf这个文件了,打开它就找到prefork模式的默认设备是: 
<IfModule mpm_prefork_module> 
StartServers                      5 
MinSpareServers                   5 
MaxSpareServers                  10 
MaxClients                      150 
MaxRequestsPerChild               0 
</IfModule> 

   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要稳重。 

2.要加到几许? 

连接数理论被骗然是支撑越大越好,但要在办事器的才能局限内,这跟办事器的CPU、内存、带宽等都有关系。 

查看当前的连接数可以用: 
ps aux | grep httpd | wc -l 

或: 
pgrep httpd|wc -l 

策画httpd占用内存的均匀数: 
ps aux|grep -v grep|awk ‘/httpd/{sum+=¥6;n++};END{print sum/n}’ 

因为根蒂根基都是静态页面,CPU消费很低,每过程占用内存也不算多,大约200K。 

办事器内存有2G,除去常规启动的办事大约须要500M(保守估计),还剩1.5G可用,那么理论上可以支撑1.5*1024*1024*1024/200000 = 8053.06368 

约8K个过程,支撑2W人同时接见应当是没有题目的(能包管此中8K的人接见很快,其他的可能须要守候1、2秒才干连上,而一旦连上就会很流畅) 

把握最大连接数的MaxClients ,是以可以测验测验设备为: 
<IfModule mpm_prefork_module> 
StartServers                      5 
MinSpareServers                   5 
MaxSpareServers                  10 
ServerLimit                    5500 
MaxClients                     5000 
MaxRequestsPerChild               100 
</IfModule> 

重视,MaxClients默认最大为250,若要跨越这个值就要显式设置ServerLimit,且ServerLimit要放在MaxClients之前,值要不小于MaxClients,不然重启httpd时会有提示。 

重启httpd后,经由过程反复履行pgrep httpd|wc -l 来调查连接数,可以看到连接数在达到MaxClients的设值后不再增长,但此时接见网站也很流畅,那就不消贪婪再设置更高的值了,不然今后若是网站接见突增不警惕就会耗光办事器内存,可按照今后接见压力趋势及内存的占用变更再逐渐调剂,直到找到一个最优的设置值。 

(MaxRequestsPerChild不克不及设置为0,可能会因内存泄漏导致办事器溃散) 

更佳最大值策画的公式: 

apache_max_process_with_good_perfermance < (total_hardware_memory / apache_memory_per_process ) * 2 
apache_max_process = apache_max_process_with_good_perfermance * 1.5 

 

文献出处:http://www.cesclub.com/bw/jishuzhongxin/Webjishu/2011/0929/11243.html

分享到:
评论

相关推荐

    设置Apache最大连接数

    ### 设置Apache最大连接数 #### 知识点一:理解Apache最大连接数的重要性 在Web服务器的运维过程中,Apache作为一款广泛使用的Web服务器软件,其性能优化至关重要。特别是在高并发场景下,合理设置Apache的最大...

    apache httpd.conf中文 apache优化

    apache httpd.conf中文 apache优化

    apache httpd php wordpress

    首先,Apache HTTPD(也称为Apache)是互联网上最广泛部署的Web服务器软件。它负责接收HTTP请求,并返回相应的HTML、图像或其他Web资源。Apache以其稳定性、灵活性和强大的模块化架构而闻名,允许开发者通过加载不同...

    查看apache连接的连接并发数

    在prefork模式下,Apache服务器的连接并发数取决于httpd进程数,即StartServers、MinSpareServers、MaxSpareServers、ServerLimit、MaxClients和MaxRequestsPerChild等配置参数的设置。 在prefork模式下,Apache...

    Apache httpd-2.4.17-x64.zip

    "Apache24"文件夹则可能包含了Apache服务器的核心组件和相关文件,如二进制可执行文件(httpd.exe)、配置文件(httpd.conf)、模块(.so文件)以及日志文件等。其中,`httpd.exe`是Apache服务器的主要进程,负责...

    Linux下安装Apache httpd.doc

    由于使用了`select()`系统调用,所以最大并发不能超过1024。 2. **Worker**:多进程模型,每个进程可以生成多个线程,每个线程响应一个请求。预生成多个空闲线程。 3. **Event**:一个进程可以直接响应多个请求,并...

    apache httpd2.4.46源码包

    安装完成后,你可以通过修改`/usr/local/apache2/conf/httpd.conf`配置文件来调整Apache的行为,例如设置监听端口、虚拟主机、日志文件位置等。然后,启动Apache服务,通常命令为`/usr/local/apache2/bin/apachectl ...

    apache httpd禁止某IP访问网站.IP黑名单

    apache httpd禁止某IP访问网站.IP黑名单

    apache httpd 2.4.26 配套用 apr-1.5.2

    APR-1.5.2是与Apache HTTPD 2.4.26相配套的版本,它负责处理诸如文件I/O、网络通信、线程管理、内存分配等低级操作。APR的设计目标是提供跨平台的兼容性,确保在不同操作系统环境下,Apache HTTPD的功能和性能保持...

    Apache中配置最大并发用户数 tcp连接设置.docx

    Apache 中配置最大并发用户数 TCP 连接设置 Apache 是一个功能强大且灵活的 Web 服务器,可以根据不同的需求进行配置和优化。本文主要介绍如何配置 Apache 的最大并发用户数和 TCP 连接设置,以提高 Web 服务器的...

    Apache增加最大连接数的方法

    增加apache最大连接数的方法: 在httpd.conf中设置: MaxClients n n是整数,表示最大连接数,取值范围在1和256之间,如果要让apache支持更多的连接数,那么需要修改源码中的httpd.h文件,把定义的HARD_SERVER_...

    Apache HTTPD cluster config

    Apache HTTPD cluster config

    apache-httpd-2.4的win64编译后版本

    在Windows环境下,Apache HTTPD服务通常通过命令行工具httpd.exe启动和停止,也可以通过系统服务管理工具将其设置为开机启动。为了确保安全,应关闭不必要的服务端口,限制对服务器目录的访问,并定期更新服务器以...

    Windows版本apache httpd

    在Windows版本的Apache HTTPD中,它保持了与Unix/Linux系统上的核心功能一致性,同时也针对Windows操作系统进行了优化。 标题“Windows版本apache httpd”指的是Apache HTTP Server在Windows操作系统上的实现。这个...

    Apache httpd 2.4.23(Linux)安装文档及文件

    编辑`/usr/local/apache2/conf/httpd.conf`,设置监听端口、DocumentRoot(网站根目录)、ServerName等。 7. **启动服务**:使用Apache提供的控制脚本启动服务器。 ``` sudo /usr/local/apache2/bin/apachectl ...

    apache2.4.33httpd安装包及依赖包

    Apache HTTP Server,通常简称为Apache,是世界上...安装完成后,你可以通过修改配置文件来定制服务器的行为,如设置虚拟主机、调整日志记录、启用SSL等。记得在生产环境中,定期更新Apache到最新稳定版以确保安全性。

    Apache httpd-2.4.16-x86.zip

    2. **事件模型**:在2.4版本中,Apache引入了新的事件MPM(多进程模块),这提高了服务器在高并发环境下的性能,因为它可以更有效地处理多个连接。 3. **访问控制**:Apache 2.4提供了更灵活的授权和认证机制,如...

    apache httpd

    peoxy balancer 配置 ProxyPass /11serv balancer://saleserv-cluster/ nofailover=On

    apache-httpd-2.4.6

    "Apache24"目录可能包含了Apache服务器的所有组件,如bin文件夹下的可执行文件(httpd.exe),conf文件夹中的配置文件(httpd.conf),以及logs文件夹用于存放日志文件。用户需要根据自己的需求修改配置文件,并按照...

    apache httpd-2.4.59

    这个版本,"Apache httpd-2.4.59",是该服务器软件的一个更新迭代,旨在提供性能优化、安全增强以及功能扩展。让我们深入探讨这个版本的一些关键特性、功能和改进。 1. **版本升级与兼容性**: Apache httpd-2.4....

Global site tag (gtag.js) - Google Analytics