如何降低apache的cpu占用率,让他稳定下来
发布网友
发布时间:2022-04-23 06:26
我来回答
共1个回答
热心网友
时间:2023-07-11 04:04
Apache是运行在Linux操作系统上的头号Web服务器。很多小地方都可以用来调整Apache的性能,并降低它对系统资源的影响。其中一个就是调整内存使用率,当然达到这一目的可能还是需要花点功夫的。 例如,通过ps来确定httpd线程的内存使用率,可以输入下面的命令: # ps -U apache -u apache u USERPID %CPU %MEMVSZRSS TTYSTAT START TIME COMMAND apache130670.05.3 149704 54504 ?SOct071:53 /usr/sbin/httpd -f /etc/httpd/conf/httpd.conf -DAPACHE2 上面这段输出显示了单个httpd进程使用了50 MB的RSS(驻留集大小)内存(或者非交换物理内存),以及149 MB的VSZ(虚拟)内存。这当然在很大程度上取决于你在Apache里加载和运行的模块数量。这决不是一个固定的数字。由于这个数字里还包含了共享库包,所以不是100%的准确。我们可以认为RSS数字的一半是httpd线*正使用的内存数,这可能还有点保守,但是离我们的目的已经非常接近了。 在本文里,我们假设每个httpd进程都在使用了27 MB内存。然后,你需要确定可以让httpd真正使用的内存数。根据运行在机器上的其他进程,你可能希望要求50%的物理内存都供Apache使用。在一个装有1GB内存的系统上,就有512MB的内存可以被划分为多个27MB的内存,也就是大约19个并发的httpd内存。有些人坚持认为每个httpd线程“真正”使用大约5MB的内存,所以从理论上讲你可以把512MB的内存划分出102个并发进程供Apache使用(要记住的是,除非你的网站需要极其巨大的流量,否则这种情况是非常罕见的)。 在默认状态下,Apache会分配最大256个并发客户端连接,或者256个进程(每一个都对应一个请求)。按照这种设置,一个流量巨大的网站会在顷刻间崩溃(即使你假设每个进程占用5MB内存,那也需要1.3GB的内存来满足请求的数量)。如果不采取其它措施,系统会通过硬盘来尝试使用交换空间以处理它无法在物理内存中完成的任务。 其他可以调整的项目包括KeepAlive、KeepAliveTimeout和MaxKeepAliveRequests等设置。可以放在httpd.conf文件里的推荐设置有: ServerLimit 128MaxClients 128KeepAlive OnKeepAliveTimeout 2MaxKeepAliveRequests 100 通过将KeepAliveTimeout从15秒减到2秒,可以增加MaxClients命令;19太小,而128要好得多。通过减少进程存活的秒数,你可以在相同的时间内允许更多的连接。 当然,如果没有真正的测试在背后支持,数字就是毫无意义的,这就是ab的作用之所在。使用ab对Apache配置文件(MaxClients等于256、ServerLimit等于256、KeepAliveTimeout等于15)进行调整,使其能够满足1000个请求(100个连续请求并发产生)的调整方法如下。(在执行测试的时候要确保服务器上有一个终端打开以观察系统的负载。) $ ab -n 1000 -c 100 -k http://yoursite.com/index.php 现在把上面的服务器设置改为更加保守的设置,重新启动Apache,试着再次测试(总是从远程计算机上进行,而不是本机)。 在这里的测试中,不同的设置导致执行所消耗的时间产生了一倍的差距(分别为27.8s和16.8s),但是负载的平均值为0.03和0.30。这可能会使得你的网站变得稍慢,但是会确保它不会在高负载的情况下崩溃。还要记住的是,你将需要进行多次测试,以便取得一个平均值。 使用ab是测试调整Apache配置的一个极佳方法,应该在你每次做出影响性能的更改时使用它
如何降低apache的cpu占用率,让他稳定下来
其中一个就是调整内存使用率,当然达到这一目的可能还是需要花点功夫的。 例如,通过ps来确定httpd线程的内存使用率,可以输入下面的命令: # ps -U apache -u apache u USERPID %CPU %MEMVSZRSS TTYSTAT START TIME COMMAND apache130670.05.3 149704 54504 ?SOct071:53 /usr/sbin/httpd -f...
apache占用cpu过大怎么办
1) 在httpd.conf文件中使用 Win32DisableAcceptEx 禁止Apache使用 Microsoft WinSock v2 API :<IfModule mpm_winnt.c> Win32DisableAcceptEx # 禁止使用AcceptEx()</IfModule> 2) 使用System Repair Engineer(SREng) 查看WinSocket供应者,如果出现非MS的陌生项则将其删除,并使用软件的“重置WinSocke...
如何降低apache的cpu占用率,让他稳定下来
建议要定时清理机箱灰尘,这样能保持散热。英特尔最新推出了第六代酷睿产品,采用全新一代的架构,14纳米制程工艺和第二代3-D晶体管技术,拥有强大的性能,飞快的处理速度,您也可以看看。
httpd.exe CPU占用100%,该怎么优化
为了网站的运作采取了临时的处理方法,重启apache,网站恢复了。可以正常访问。httpd.exe占CPU没那么高了。4 问题还没解决呀,以后同样会出现这样的问题呀,后来通过网上查找学习,找到一个好方法解决,在这分享出来。打开apache服务器配制文件加入Win32DisableAcceptEx,重启apache。
apache 每次开机都会有这个进程 CPU占有率很高 我每次开机后都停止它...
加上你的机器硬盘是不是服务器硬盘,速度慢,读半天也差不多吧。它开机总要扫描以下你的设置,看看那些文件是提供对外浏览的,选哪些放内存里。不可能有人访问就读硬盘的。不然你就禁止apache相关的东西开机运行吧,想单独卸载那个读盘的还是别了,那就把apache整个卸载了吧。
apache高并发如何处理httpd每个进程都占用较高的内存和cpu
解决法.修改配置文件http.conf,将Threadsperchild参数设为50左右(视你的配置适量减少即可,我设成了50因为服务器配置很差),同样的,适量减少MaxRequestsPerChild的数值.保存并重启apache即可.ThreadsPerChild的意思是系统启动时默认启动的等待线程数,用来等待处理客户的请求。在使用AcceptEx时内存增长不明显并且可以...
我的电脑每次启动都会有两个Apache.exe进程,其中一个占用大量的内存
安全等级 (0-5): 未知N/A 间谍软件: 否 广告软件: 否 病毒: 否 木马: 否 电脑中刚启动起来时出现Apache.exe这个进程占CPU很大。基本上无法运行其它应用程序,就连打开“我的电脑”也十分缓慢。但结束Apache.exe这个进程后系统不受影响,运行正常.建议解决方法: 在“运行”中输入“services.msc...
服务器cpu负载过高怎么处理ddos导致cpu负载高
2、尽量避免NAT的使用无论是路由器还是硬件防护墙设备要尽量避免采用网络地址转换NAT的使用,因为采用此技术会较大降低网络通信能力,其实原因很简单,因为NAT需要对地址来回转换,转换过程中需要对网络包的校验和进行计算,因此浪费了很多CPU的时间,但有些时候必须使用NAT,那就没有好办法了。 3、充足的网络带宽保证网络带...
如何结束APACHE.EXE程序?太烦了,一开机就占用大量CPU!
选择运行-->输入CMD回车-->输入如下命令:ntsd -q c -p 该程序的PID 回车 注:如果任务管理器没有PID的话可以点击查看菜单-->选择列-->在PID上打勾 如果要完全禁止开机自动运行的话:开始->运行->msconfig->启动->设置禁止开机自动运行APACHE.EXE ...
apache 占用cpu很高,导致网站速度很慢,查看apache日志 没有错误_百 ...
先查下进程、和系统日志;apache引起cpu高,很可能是某个模块出现大流量的调用、或者部署的某个应用的问题。建议贴出或从进程情况、系统日志情况、连接情况等具体分析。