apache 性能优化 MaxClients

限时加码!20+主流AI编程工具免费用 购周边加赠Coding Plan Lite,Claude Code、Cursor等即刻畅享,学习进阶更高效! 阅读详情
头有一个网站在线人数增多,访问时很慢。初步认为是服务器资源不足了,但经反复测试,一旦连接上,不断点击同一个页面上不同的链接,都能迅速打开,这种现象就是说明apache最大连接数已经满了,新的访客只能排队等待有空闲的链接,而如果一旦连接上,在keeyalive 的存活时间内(KeepAliveTimeout,默认5秒)都不用重新打开连接,因此解决的方法就是加大apache的最大连接数。

1.在哪里设置?

服务器的为FreeBSD 6.2 ,apache 2.24,使用默认配置(FreeBSD 默认不加载自定义MPM配置),默认最大连接数是250

在/usr/local/etc/apache22/httpd.conf中加载MPM配置(去掉前面的注释):
# Server-pool management (MPM specific)
Include etc/apache22/extra/httpd-mpm.conf

可见的MPM配置在/usr/local/etc/apache22/extra/httpd-mpm.conf,但里面根据httpd的工作模式分了很多块,哪一部才是当前httpd的工作模式呢?可通过执行 apachectl -l 来查看:
Compiled in modules:
             core.c
             prefork.c
             http_core.c
             mod_so.c

看到prefork 字眼,因此可见当前httpd应该是工作在prefork模式,prefork模式的默认配置是:
<IfModule mpm_prefork_module>
ServerLimit 5500
StartServers 10
MinSpareServers 10
MaxSpareServers 20
MaxClients 5000
MaxRequestsPerChild 100
</IfModule> 

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
Apache服务器修改最大连接数(并发数量) 自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。因此我收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点! 阅读详情

相关推荐

调整 Apache 服务器的最大连接数

调整 Apache 服务器的最大连接数可以帮助优化服务器性能,以处理更多的并发请求。在本文中,我将介绍如何设置 Apache 服务器的最大连接数。请注意,设置最大连接数时需要考虑服务器的硬件规格和可用资源。设置过高的最大连接数可能会导致服务器负载过高,影响性能。因此,在进行任何更改之前,请确保评估服务器的容量和需求。希望这个简单的指南能够帮助你调整 Apache 服务器的最大连接数。现在,你的服务器将能够处理更多的并发请求。取消注释并修改此行,将最大连接数设置为你希望的值。来保存文件,然后按下。

YbeCoder的博客 967

合理设置apache参数

在/usr/local/etc/apache22/httpd.conf中加载MPM配置(去掉前面的注释):# Server-pool management (MPM specific)Include etc/apache22/extra/httpd-mpm.conf 可见的MPM配置在/usr/local/etc/apache22/extra/httpd-mpm.conf,...

weixin_33857679的博客 316

EB tresos配置指南:CAN通信信号收发全流程解析

本文详细解析了使用EB tresos配置工具实现AUTOSAR架构下CAN通信信号收发功能的全流程。从环境准备、COM模块信号定义、PduR路由配置、CanIf硬件抽象到CAN驱动层设置,提供了清晰的步骤指南和关键配置要点,帮助开发者快速打通从应用层到物理层的数据链路,实现可靠的CAN通信。

weixin_29192141的博客 480

linux apache 连接数设置,Apache增加最大连接数的方法

Apache增加最大连接数的方法更新时间:2011年02月16日 14:34:38 作者:增加Apache最大连接数的方法,需要的朋友可以参考下。MaxClients n1、apache1.xn是整数,表示最大连接数,取值范围在1和256之间,如果要让apache支持更多的连接数,那么需要修改源码中的httpd.h文件,编辑/httpd-2.0.59/include/httpd.h中的HARD...

weixin_39831991的博客 1050

apache 连接数

1、查看apache当前并发访问数:   netstat -an | grep ESTABLISHED | wc -l   对比httpd.conf中MaxClients的数字差距多少。   2、查看有多少个进程数:   ps aux|grep httpd|wc -l   3、可以使用如下参数查看数据   server-status?auto   #ps -ef|grep httpd

iiiiiiiiiiii9的专栏 531

apacheMaxClients 与MaxRequestsPerChild 并发数

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34080571的博客 422

apache php 调优_Apache性能优化(四)

下面是prefork的默认配置段:StartServers 5 //MinSpareServers 5 //设置了最小的空闲进程数。MaxSpareServers 10 //设置了最大的空闲进程数,如果空闲进程数大于这个值,Apache会自动kill掉一些多余进程。这个值不要设得过大,但如果设的值比MinSpareServers小,Apache会自动把其调整...

weixin_40008566的博客 162

apache服务器性能如何优化,Apache服务器性能如何优化

配置网站,要充分的把系统资源利用出去,榨干系统的一切潜能,让网站速度发挥到极致。Apache,是用户浏览和网站数据的一个中间桥梁。但是在这里,我们虽然做得并不是很多,但是如果心细打理,有些设置也会起到立竿见影的效果。1、安装Apache的时候,要正确选择MPM要想让Apache的性能最好,那么第一步要做到的是:选择合适的MPM。 ( 推荐学习:Apache服务器)Apache有3个MPM,它们分...

weixin_29424569的博客 500

apache php 优化,Apache服务器性能如何优化

配置网站,要充分的把系统资源利用出去,榨干系统的一切潜能,让网站速度发挥到极致。Apache,是用户浏览和网站数据的一个中间桥梁。但是在这里,我们虽然做得并不是很多,但是如果心细打理,有些设置也会起到立竿见影的效果。1、安装Apache的时候,要正确选择MPM要想让Apache的性能最好,那么第一步要做到的是:选择合适的MPM。 ( 推荐学习:Apache服务器 ...

weixin_42101384的博客 165

Apache性能优化技巧

原贴:http://blog.chinaunix.net/u/13329/showart.php?id=84827 Apache性能优化技巧    

最实用的Linux博客 1205

apache 优化

apache服务器的time_wait过多 fin_wait1过多等问题2009-01-16 16:591。time_wait状态过多。 通常表现为apache服务器负载高,w命令显示load average可能上百,但是web服务基本没有问题。同时ssh能够登陆,但...

chuifuhuo6864的博客 131

apache相关优化

1.Apache所运行的硬件环境都是对性能影响最大的因素,即使不能对硬件进行升级,也最好给Apache一个单独的主机以免受到其他应用的干扰。各个硬件指标中,对性能影响最大的是内存,对于静态内容(图片、JavaScript文件、css文件等)它决定了Apache可以缓存多少内容,它缓存的内容越多,在硬盘上读取内容的机会就会越少,大内存可以极大提高静态站点的速度; 2.对动态高负载站点来说,每个请求保存的时间更多一些,Apache的mpm模块会为每个请求派生出相应的进程或线程分别处理,而进程或线程的数量与内存的

qq_44947614的博客 221

Apache prefork configuration and explaination

(一)prefork模式下(其他模式下不适用),apache需要优化的主要参数: ServerLimit 3000 StartServers 750 MinSpareServers 5 MaxSpareServers 100 MaxClients 3000 MaxRequestsPerChild 10000 首先来看看apache各个参数的意义(引号里引用的是官方文档的描述): (1)Ser...

抽刀断水 135

Apache 优化配置10条建议

之前VPS使用的是默认的Apache配置,感觉还行,不过随着博客的人流量上升,显然这种配置无法满足需求了;下面是Apache官方手册中给出的几条优化配置建议,笔者将其整理出来,对Apache服务器的运行效率是有帮助的。 控制MaxClients的设置,以避免服务器产生太多的子进程而发生交换。 进程间的数据交换会占用很大内存,数据交换产生的滞后使用户总感觉”不够快”,所以用户就可...

weixin_30415801的博客 117

Apache的prefork进程模式参数详解和调优

Apache的prefork进程模式参数详解和调优 MPM:Apache 2.X 支持插入式并行处理模块,称为多路处理模块(MPM)。在编译 apache 时必须选择且只能选择1个 MPM 默认支持 3 种:Prefork,Worker,Event(不稳定) 编译时不指定默认为prefork模式 Prefork MPM : 这个多路处理模块(MPM)实现了一个非线程型的、预派生的 

陈JieJie的博客 1536

Apache HTTP Server和Tomcat性能优化

显示如下: --with-mpm=MPM Choose the process model for Apache to use. MPM={beos|worker|prefork|mpmt_os2| perchild|leader|threadpool} 上述操作用来选择要使用的进程模型,即哪种MPM模块。prefork就是Unix平台上缺省的MPM。查看Httpd.conf # StartServers 5 # MinSpareServ

liangjw1018的专栏 167

apache占用内存高解决办法

我用512M的vps,访问量不大,但内存占用很大,甚至宕机。 我用top,然后shitf+m发现,httpd占用内存极大。经过网上找资料设置后,用过一段时间终于没再出现内存问题了。 首先查找配置文件的位置,可以用如下命令: find / -name httpd.conf找到配置文件/usr/local/apache/conf/extra/httpd-mpm.conf,修改设置Apache M...

weixin_30432007的博客 195

Apache (Web服务器软件)

Apache(音译为阿帕奇)是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一。它快速、可靠并且可通过简单的API扩充,将Perl/Python等解释器编译到服务器中。 Apache HTTPServer(简称Apache)是Apache软件基金会的一个开放源码的网页服务器,可以在大多数计算机操作系统中运行,由于其多平台和安全性被广泛使用,是最流行的Web服务器端软件之一。它快速、可靠并且可通过简单的A..

学英语的程序员 3491
上一篇: PHP 性能优化技巧
下一篇: Apache中MaxRequestsPerChild是什么?
fujs999
博客等级 码龄24年 25粉丝 20原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值