只要阅读让EC2-Micro上的WordPress稳定 在“调整Apache”部分,我不能完全弄清楚他是如何为自己的preforkconfiguration提供数字的。 他解释了如何获得一个平均的过程,我得到的数字。 但是之后: 或者每个进程大约53MB …在这种情况下,十个线程应该是安全的。 这意味着,如果我们收到超过10个并发请求,其他请求将排队,直到一个工作线程可用。 为了最大限度地提高性能,我们还将configuration系统使这个线程数始终可用。 从每个进程53MB,与613MB的RAM,他不知何故得到这个configuration,我不明白: <IfModule prefork.c> StartServers 10 MinSpareServers 10 MaxSpareServers 10 MaxClients 10 MaxRequestsPerChild 4000 </IfModule> 他是如何从每个进程53MB获得的,限制为613MB? 奖金的问题 从下面的小实例(1.7 GB内存),好的设置是什么? bitnami@ip-10-203-39-166:~$ ps xav |grep httpd 1411 ? Ss 0:00 2 0 114928 15436 0.8 /opt/bitnami/apache2/bin/httpd -f /opt/bitnami/apache2/conf/httpd.conf 1415 ? S 0:06 10 0 125860 55900 3.1 /opt/bitnami/apache2/bin/httpd -f /opt/bitnami/apache2/conf/httpd.conf […]
[编辑] 糟糕的问题,主要是 – 看到我的答案 [/编辑] 我们有一个运行RHEL6,x64的系统。 我们正在使用从本地安装的apache 2.2.22来源。 我们主要服务于: mod_perl应用程序(用本地安装的perl 5.16.0) 用mod_jk代理的tomcat应用程序 这里是一些背景; 主要问题在下面。 所有这些都与Oracle后端对话。 我们遇到了Oracle无法响应的问题。 我们认为这是因为我们正在达到oracle的最大进程限制。 我们已经提高了stream程限制,但是现在我们正面临oracle服务器的内存压力。 我们有大量的甲骨文会议闲置。 我可以跟踪一堆他们回到httpd进程。 我们有mod_perl的Apache :: DBI启动一个新的连接到数据库与每个生成的httpd子。 我们担心,当httpd的退出和httpd正在退出的时候,这些并不总是被正确地closures。 我知道修改mod_perl应用程序以使用一些更好的db连接池forms是很好的; 我们打算追求这个,但是想尽快解决我们眼前的问题。 所以这是主要的问题。 我们正在使用prefork MPM。 Apachesubprocess最多持续几分钟 。 日志分析显示,每个人在退出之前所服务的客户less于50个; 每个孩子的最后一个请求是在某种内部连接上的OPTIONS * HTTP/1.0 ; 我的印象是这是一个从主进程“平”。 我已经调整了MPMconfiguration如下。 我不想提高MinSpareServers太高,因为毕竟,我试图最大限度地减less对oracle的会话数量。 MinSpareServers 5 MaxSpareServers 30 MaxClients 150 MaxRequestsPerChild 10000 现在我们每分钟服务250-300个请求。 我们有21个httpd正在运行,其中最年长的(除了拥有root权限的主人)还有3分钟的时间。 这个apache儿童的收获率似乎过高。 什么可能导致它? Apachebuild立于: $ ./configure –prefix=/opt/apache […]
我有一个使用PHP进程控制(pcntl)函数并行发送多个请求到SNS服务的工作层。 我的问题是如何最好地调整MPM_PREFORK指令以获得最佳的开箱即用,以及如何计算我可以使用可用资源运行的最并发的PHP进程。 我正在运行一个T2媒体,这是这样specid: Model |vCPU | CPU Credits / hour | Mem (GiB) | Storage t2.medium | 2 | 24 | 4 | EBS-Only 此外,如果有人可以阐明如何使用/计入CPU计算,我将非常感激。 我目前在这些post中应用了这些思想。 tune apache performance using mpm prefork module http://fuscata.com/kb/set-maxclients-apache-prefork 任何帮助非常感谢
有一个严重的问题。 我有虚拟服务器运行Apache和两个网站项目与大量的访问者(每秒大约5点)。 我的服务器开始自行closures。 在错误日志中,我发现这个问题 [error] server reached MaxClients setting, consider raising the MaxClients setting [notice] caught SIGTERM, shutting down 所以我寻找解决scheme来提高这些数字。 我发现这个数字是在apache confinguration中的两个部分。 同 /usr/sbin/httpd -l Compiled in modules: core.c prefork.c http_core.c mod_so.c 我发现我的服务器正在使用prefork。 所以我再次search适当的价值,并尝试这些 <IfModule prefork.c> StartServers 8 MinSpareServers 5 MaxSpareServers 20 ServerLimit 1024 MaxClients 1024 MaxRequestsPerChild 4000 </IfModule> 但即使使用这些值,服务器仍然closures。 任何人都可以指导我在哪里看,阅读什么,或者什么设置适当的稳定运行的服务器? 我会感谢任何帮助,伙计们。 服务器运行Linux CentOS 5.4 […]
我知道在Apache的prefork模块创build一个主进程和几个subprocess来处理连接,我的问题是: 每个prefork孩子每次处理一个连接还是处理一个请求 ? 如果它处理一个连接,这是否意味着每个新的连接都需要在队列中等待一个空闲subprocess来处理? 以及关于保持连接的说法? 此外,我有使用线程的工人mpm模块相同的问题?
我们最近将我们的Apache 2.4.7模式从mpm_pre-fork切换到mpm_event。 从那以后,我们一直无法让我们的Files指令工作。 <Files "*.php"> Header set Cache-Control "no-cache, no-store, must-revalidate, max-age=0" </Files> 我确实设法解决这个混乱的问题: <Files ~ "((^$)|(php))"> 但是,根据我的正则expression式知识,这将在文件名中的任何位置匹配“php”文件。 我发现需要匹配这个其他问题的“空”情况。 我们也尝试了使用相同结果的FilesMatch 。 这些都不能从我从Apache 2.4文档中得知。 有没有其他人看到这样的问题? 更新 :我把服务器回滚到mpm_preforker和mod_php没有任何改变。 然后我清除了Apache和PHP,重新安装为mpm_preforker,它再次工作。 然后我升级到mpm_event和php-fpm,稍后停止工作。 我正试图隔离它打破的地方,并发布我发现的东西。 更新2 :这似乎与fastcgi或php-fpm的东西有关。 我有两个<Files>指令,一个用于生成唯一标头的html和一个用于php指令: <Files *.html> Header always set X-Aaron-files "html match" </Files> <Files *.php> Header always set X-Aaron-files "php match" </Files> 如果我去一个虚构的php文件,那么我得到一个404消息与php-match头。 但如果我去一个真正的php文件,然后服务器执行PHP文件,但不会返回标头指示一个php文件匹配。
我search了网页,但是我找不到Apache MPM prefork中的MaxSpareServers。 MaxSpareServers指令设置所需的最大空闲子级服务器进程数。 空闲进程是不处理请求的进程。 如果有超过MaxSpareServers空闲,那么父进程将杀死多余的进程。 太棒了,但是是什么原因造成了备用服务器的创build呢? 更重要的是,什么时候备用服务器消失? 我知道minspareservers是在服务器启动后逐渐创build的。 maxspareservers如何与maxclients相关联? 基本上,我在如何最好地configurationApache方面有点不知所措。这里有很多文档,但不是很清楚。 谢谢,约翰。
如何在ubuntu服务器上从prefork mpm切换到worker mpm? 如果有任何问题,如何回滚? root@myserver:~# apache2ctl -l Compiled in modules: core.c mod_log_config.c mod_logio.c prefork.c http_core.c mod_so.c root@myserver:~# aptitude search apache2-mpm- p apache2-mpm-event – Event driven model for Apache HTTPD p apache2-mpm-itk – multiuser MPM for Apache 2.2 p apache2-mpm-perchild – Transitional package – please remove i A apache2-mpm-prefork – Traditional model for Apache HTTPD p […]
我正在尝试加载我的团队使用jmeter在AWS ubuntu 14.04上开发和部署的LAMP应用程序。 我们使用AWS CDN来提供静态文件,mysql和apache在同一个主机上。 当只有一个用户在做东西时,响应时间是正常的,根据页面在2到5秒之间。 我的目标是在同一时间使500个连接的用户同时做出回应。 我从less数用户开始,在一个t2.small(1vCPU,2Gb RAM)上使用mod_php和prefork模块,并且只有40个连接用户满意。 一旦有100个,它的响应时间+ 20s就会非常慢。 在尝试了一些SO资源之后,我尝试了使用php-fpm和event module。 performance较好但仍然缓慢; + 15s的任何单个页面。 我决定将服务器升级到M4.2xlarge(8vCPU,32 Gb RAM)。 对于100个连接的用户来说,它performance正常,我很满意,但这是一个昂贵的,我想用最适合的服务器规格来find更好的性能。 无论如何,我试图testing这个M4.2xlarge与330连接用户做东西一致,它变得太慢,每页+ 15~ + 20s。 一直试图调整事件configuration和fpm过程没有运气(在大多数情况下,我有+90℅cpu,但没有足够的内存不被使用,这就是为什么我在那里我们有一个限制)。 我觉得我很亲密,但我做不到。 我会更新我的问题与任何文件,日志或ouptut你会问。
所以我相信这可能以前曾被问过,但我想确保我得到正确的信息。 我正在运行一个带有Debian 5和Apache 2.2的360 Linode盒子。 我自己编译了一切(没有apt-get)。 每隔一段时间(每隔几个星期一次),我的服务器就会随机“崩溃”:它可能会达到100%的CPU(真的是400%,但你知道我的意思)并交给我们。 你不能SSH进来看看是什么问题,服务器本身停止接受连接。 解决这个问题的唯一方法就是重启机器。 最近发生的时间是24小时,12小时,10小时,8小时,6小时,4小时。最后,我在两天前把它锁起来了。 我注意到磁盘IO被抬高了,几乎没有任何内存了! 另外,有一个运行在3-4%RAM的httpd进程。 而通过船载,我的意思是当我做了ps -ef时,他们占据了整个屏幕。 如果你向上滚动,他们占用了我的SSH客户端的整个缓冲区。 所以我对代码做了一些调整,认为某些东西没有正确closures。 我在我的PHP中修正了内存问题,我开启了更细化的错误日志并修复了一堆错误,这在一定程度上似乎有所帮助。 大约每24小时发生一次事故。 我确信这是因为内存太less而造成的,我收到的命中量正在把我的服务器踢进交换。 由于需要交换的请求太多,磁盘IO通过屋顶射击,导致我的CPU使用率通过屋顶射击,导致我的服务器locking。 我试图解决这个问题:我做了一些研究,发现我应该使用prefork。 我在我的configuration环顾四周,找不到任何ServerLimit或MaxClients或类似的东西,所以我添加了一些“默认”值,我的服务器拒绝接受/任何/传入的连接。 实际上,prefork值会阻塞所有入站httpstream量(可能是因为我的服务器无法处理prefork?idk)。 我看到它的方式,我的服务器“曾经做”是好的,除了所有的这些Apache进程不断挂断和内存泄漏。 有没有办法在Apache进程上设置超时时间,或者对其中有多less个进行限制? 最好的解决scheme是使用prefork似乎很愚蠢; 我必须想象有更好的方法。 多谢你们