Articles of mpm prefork

试图了解如何保持活力的作品

今天我们在服务器上遇到了一个问题,当文件/脚本需要更多的3秒加载。 解决scheme很简单 – 只需将MaxClients增加到估计的内存限制即可。 但是我担心该解决scheme的可伸缩性,而且看起来不太可靠 – 如果负载稍微增加,问题就会再次出现。 我们正在开发的web服务的性质 – 小型在线游戏 – 要求我们embeddedAJAX机制,每隔15秒发送一个信标,指示客户端在线。 让我们想象下面的设置。 Apache 2(mpm_prefork),MaxClients = 150,KeepAlive = on,KeepAliveTimeout = 5。有300个用户在线。 我是否理解正确 – 如果所有300个用户同时发送一个信标(只需使用POST检索beacon.php脚本) – 首先150个客户端将立即得到答案,而另外150个用户将需要等待5秒钟才能得到回答? 第二个问题。 在我的情况是什么是最好的解决scheme? 禁用保持活着?

如何在Puppet中为Apache应用preforkconfiguration?

我正在使用puppetlabs apache模块来pipe理我的apacheconfiguration。 我已经configuration了一切,除了mod_prefork的服务器设置。 有一个prefork的模板,它初始化类时变得可变,但我不完全确定如何。 我不想手动更改模板中的服务器设置,因为我在多个主机上运行apache,并且不希望更改模板本身的值。 你有什么想法如何做到这一点? 链接到模块在这里 。 我已经阅读了文档,但我无法弄清楚如何去做。

在Apache中挂进程?

我在专用服务器上运行带有MPM prefork的Apache 2.2.21。 更多细节: Server Version: Apache/2.2.21 (Unix) mod_ssl/2.2.21 OpenSSL/1.0.0-fips DAV/2 SVN/1.7.0 mod_python/3.3.1 Python/2.6.5 mod_bwlimited/1.4 PHP/5.3.6 stream量通常在10-30个请求/秒之间,有12GB的RAM,我们已经相当保守地调整了MaxClients(250)。 我们确实看到各种原因使用的峰值(在一个旧的服务器上,我们在这些峰值期间几次打我们的MaxClients)。 无论如何,这是一个新的服务器。 运行一段时间后,我们的Apache状态开始如下所示: GGG_._._RC_.G..C.G_G.C_G..C_.CG_._._G__W____..R.WCR_.W..G_…… G的(“优雅地完成”)正在卡住。 如果我重新启动Apache,它们只会消失。 这肯定会导致我们在没有定期监控/修复的情况下达到我们的MaxClients限制。 我在互联网上阅读,似乎有一个类似于这个Apache的错误,但发生在不同的条件下。 它在2.2.14版中也显然是固定的。 我包含了一个挂起的过程的堆栈跟踪您的检查。 #0 0x000000350c6f119e in __lll_lock_wait_private () from /lib64/libc.so.6 #1 0x000000350c67c138 in _L_lock_9164 () from /lib64/libc.so.6 #2 0x000000350c679a32 in malloc () from /lib64/libc.so.6 #3 0x000000350c66fcfb in __libc_message () from /lib64/libc.so.6 […]

用apt-get,apache2-mpm-prefork安装apache2?

我在64位有一个debian 6。 我想安装灯。 在一些网站上我发现: apt-get install apache2 在另一些上: apt-get install apache-mpm-prefork 我应该select哪一个? 谢谢

MPM Prefork,apache2过程太多了?

我有这个设置: <IfModule mpm_prefork_module> StartServers 5 MinSpareServers 5 MaxSpareServers 10 ServerLimit 1250 MaxClients 1250 MaxRequestsPerChild 1500 </IfModule> 是可能的,与5-10最小/最大服务器设置当我做顶,有吨的Apache 2进程? 他们不应该只在5-10之间吗? 只要看看260进程的睡眠O_O(d * mn apache) 点击http://img200.imageshack.us/img200/3285/senzatitolo1iw.jpg EDIT1: 在这里过了30分钟后, 点击: http : //img816.imageshack.us/img816/1645/immagineov.png 经过24小时的UP(用于MEM使用的顶级订购者) 感谢您的任何解释 (debian 6,lamp,4gb ram)

Apache 2.4不closures连接

我有一个Apache 2.4 webserver,在CentOS的微型AWS实例上运行。 Apache使用prefork MPM模块运行PHP。 服务器通过亚马逊负载均衡器进行访问,该负载均衡器每60秒尝试访问一次服务器的index.php网页。 问题是,在1-2天之后,Apache用index.php页面打开了256个进程,出现以下错误: [Sun Sep 08 02:13:00.356051 2013] [mpm_prefork:error] [pid 1201] (12)Cannot allocate memory: AH00159: fork: Unable to fork new process [Sun Sep 08 02:13:13.656694 2013] [mpm_prefork:error] [pid 1201] AH00161: server reached MaxRequestWorkers setting, consider raising the MaxRequestWorkers setting 通常当发生这种情况时,不再接受新的http连接。 Apache可能不会closures负载均衡器的所有连接。 我们有另一台Apache 2.2的服务器,它没有这个问题,所以可能是2.4版本的问题,它比2.2(我们没有改变Apache的默认configuration)有很大的不同。 mod_status被启用,这是我们可以得到这种情况发生一次的输出: http : //www.speedyshare.com/vE3My/server-status.txt 有谁知道我们如何解决这个问题? 提前致谢!

Apache prefork优化 – select正确的`MaxRequestsPerChild`值

我试图优化我们的Web服务器来处理尽可能多的连接。 我读了很多post和Apache的说明。 我试图了解我应该为MaxRequestsPerChildselect哪个值。 起初,我已经尝试将它设置为4000,但服务器处理很多请求时遇到困难,所以我开始提高它。 目前我的设置是: <IfModule prefork.c> StartServers 8 MinSpareServers 5 MaxSpareServers 20 ServerLimit 256 MaxClients 256 MaxRequestsPerChild 40000 </IfModule> 将MaxRequestsPerChild设置为40,000后,服务器设法处理更多的连接,而不使用更多的内存/ CPU。 任何人都可以告诉我,这个价值是否太高,或者可以有这么高的价值吗? 谢谢! OS信息: [root@web06 ~]# uname -a Linux web 2.6.18-164.el5PAE #1 SMP Thu Sep 3 04:10:44 EDT 2009 i686 i686 i386 GNU/Linux [root@web06 ~]# free total used free shared buffers cached Mem: 3814660 […]

Apache到达MaxClients并locking服务器

我目前有一个运行在mpm-prefork和mod_php上的带有512M真实/ 1024M可突发RAM(无交换)的OpenVZ VPS的Apache2服务器。 运行一些testing后,我发现Apache获得的最大进程大小是23M,所以我将MaxClients设置为25(23M x 25 = 575 MB,对我来说可以)。 我决定在我的服务器上运行一些负载testing,结果让我感到困惑。 我在我的台式机上使用ab ,要求wordpress博客的主页面。 当我用24个并发连接运行ab时,一切似乎都很好。 当然,CPU上升,可用RAM降低,每个请求的结果是大约2-3秒的响应时间。 但是如果我用25个并发连接(我的服务器限制)运行ab ,Apache几秒钟后就挂起了。 它开始处理请求,然后停止响应,CPU回到100%空闲, ab超时。 Apache日志说,它达到了MaxClients 。 当发生这种情况时,Apache保持自己locking了25个正在运行的进程(如果我检查服务器状态,它们都是“W”),并且只有在TimeOut设置进程开始死亡并且服务器再次开始响应之后(在我的情况下设置为45)。 我的问题是那个预期的行为? 为什么Apache在达到MaxClients时候就死了? 如果它与24个连接一起工作,不应该与25个工作,只是采取更多的时间来响应每个请求,其余的排队呢? 这听起来有点奇怪,任何运行ab孩子都可以通过设置与服务器MaxClients的并发连接来杀死一个web服务器。

在大约256个同时请求的情况下,Apache的性能会大大降低

我运行的是一个相对较低stream量的站点,在站点更新之后,每周一次访问量大。 在这个峰值期间,现场performance与本周其余时间相比极其糟糕。 实际上,服务器上的负载仍然很低,可靠性在10%以下CPU和30%内存(硬件应该是完全矫枉过正我们实际正在做的),但由于某种原因,Apache似乎无法应付数量的请求。 我们在RHEL 5.7,kernel 2.6.18-274.7.1.el5,x86_64上运行apache 2.2.3。 试图在ab的下class时间重现这种行为,当超过大约256个用户时,我发现性能下降。 以最小的可能用例运行testing(可以检索静态文本文件,总共223字节),同时处理245个同步请求,性能始终如一: Connection Times (ms) min mean[+/-sd] median max Connect: 15 25 5.8 24 37 Processing: 15 65 22.9 76 96 Waiting: 15 64 23.0 76 96 Total: 30 90 27.4 100 125 Percentage of the requests served within a certain time (ms) 50% 100 66% 108 75% […]

如何在CentOS 64bit上从prefork更改为worker MPM?

我正在运行CentOS 64位,只是发现我正在我的dual quad Xeon上运行prefork MPM。 我被告知工作人员会给我更低的内存使用率和更高的性能,因为我运行一个非常高的stream量网站。 如果这是真的,我该怎么做?