APACHE服务器httpd.exe进程占用cpu100%的解决方法
来源:互联网 发布:bat批处理卸载软件 编辑:程序博客网 时间:2024/05/22 08:01
httpd.exe进程占用cpu%100,关闭掉AppServ服务,cpu应用率立刻下降到0。
重新启动AppServ又出现占用cpu高的情况。
原因,httpd.exe和防火墙配置有冲突。
解决方法如下:
1.网上邻居->本地链接->属性->internet协议(TCP/IP)->属性->高级->wins标签->去掉起用LMhosts查询前的勾。
2.控制面版->windows防火墙->高级标签->本地链接设置->服务的标签里勾选安全Web服务器(HTTPS)即可。
另外在网上有另外一种解决办法。
找到httpd.conf配置文件
修改ThreadsPerChild 的值为150 默认是250 万一你的服务器或vps内存超过2G 那么就不用设置
经过修改防火墙设置http.exe占用cpu100%的问题解决!
# worker MPM
# ThreadLimit: maximum setting of ThreadsPerChild
# ServerLimit: maximum setting of StartServers
# StartServers: initial number of server processes to start
# MaxClients: maximum number of simultaneous client connections
# MinSpareThreads: minimum number of worker threads which are kept spare
# MaxSpareThreads: maximum number of worker threads which are kept spare
# ThreadsPerChild: constant number of worker threads in each server process
# MaxRequestsPerChild: maximum number of requests a server process serves
ThreadLimit 125
ServerLimit 320
StartServers 5
MaxClients 8000
MinSpareThreads 125
MaxSpareThreads 1250
ThreadsPerChild 125
MaxRequestsPerChild 1000
其中最重要的参数是 ThreadsPerChild和 MaxClients:
##ThreadsPerChild 每个子进程建立的线程数,子进程在启动时建立这些线程后就不再建立新的线程了
##MaxClients 允许同时伺服的最大接入请求数量(在worker下就是最大线程数量)
##ServerLimit:对最大子进程数的上限,该值必须大于等于MaxClients/ThreadsPerChild
##ThreadLimit:对ThreadsPerChild的上限,该值必须大于等于 ThreadsPerChild,如果将ThreadLimit设置成一个高出实际需要很多的ThreadsPerChild值,将会有过多的共享内存被 分配,应当和ThreadsPerChild可能达到的最大值保持一致.
##StartServers:服务器启动时的服务进程数目,该值肯定小于等于ServerLimit
##MinSpareThreads和MaxSpareThreads:通过新建或结束子进程的方式,将空闲线程的总数维持在这个范围内
##MaxRequestsPerChild:用于控制服务器建立新进程和结束旧进程的频 率,其实是一个为了防止内存溢出的参数,每个子进程在其生存期内允许伺服的最大请求数量。到达MaxRequestsPerChild的限制后,子进程将 会结束。对于KeepAlive链接,只有第一个请求会被计数。事实上,它改变了每个子进程限制最大链接数量的行为。
可以通过检查HTTPServer/logs/error_log日志,判断MaxClients是否需要增加,如果有下面的报错,就说明apache自上次重启至今,曾经发生过达到MaxClients的情况:
Tue Jun 07 16:36:03 2011] [error] server reached MaxClients setting, consider raising the MaxClients setting
需要注意的是,这样的报错并不会出现多次,当第二次达到MaxClients时,error_log不会记录。
还有一种可以实时看到连接数的方法,就是打开 server-status页面,设置方法如下:
1. 去掉以下部分的注释
LoadModule status_module modules/mod_status.so
ExtendedStatus On
2.修改以下部分
SetHandler server-status
# Order deny,allow
# Deny from all
Allow from all
重启ihs
使用:http://yourhost/server-status 可以进入监控页面
如果浏览器支持刷新,可以http://your_host/server-status?refresh=5 以便每 5 秒钟刷新一次
在打开的监控页面中:”.” Open slot with no current process,这里面的单个进程的“.”的数量其实对应与ThreadLimit这个值。
ThreadLimit 10
ServerLimit 2
StartServers 1
MaxClients 2
MinSpareThreads 1
MaxSpareThreads 2
ThreadsPerChild 1
MaxRequestsPerChild 1
httpd.conf的MPM配置如上例,在监控页面中的输出如下,其中有2个进程,各10个ThreadLimit,但由于ThreadsPerChild的限制,其实很多.是没有用的。
- APACHE服务器httpd.exe进程占用cpu100%的解决方法
- APACHE服务器httpd.exe进程占用cpu100%的解决方法
- svchost.exe占用cpu100 的解决方法
- rundll32.exe占用CPU100%解决方法
- httpd.exe占用cpu高的解决方法
- devenv.exe 进程莫名其妙占用CPU100%
- 一次关于Apache 的httpd.exe占用服务器CPU到100%的问题处理心酸历程
- 关于iexplore.exe占用CPU100%的问题
- svchost.exe占用cpu100%
- 80端口被Apache的httpd.exe所占用
- IIS出错造成inetinfo.exe进程占用CPU100%
- 服务器php-cgi.exe进程过多,导致CPU占用100%的解决方法
- 解决VS2015 VBCSCompiler.exe 占用CPU100%的问题
- 真正解决win2003下apache的httpd.exe占用内存的问题
- VS2010 vcpkgsrv.exe进程CPU占用高的解决方法 -
- cisvc.exe进程占用大量内存和CPU的解决方法
- VS2010 vcpkgsrv.exe进程CPU占用高的解决方法
- 进程spoolsv.exe占用CPU 100%的解决方法
- java程序打包
- Eclipse快捷键大全(转载)
- Cracking the coding interview: 查找文中两个单词的距离
- .net / MySQLHelper
- HTML页面嵌入视频和JS控制切换视频
- APACHE服务器httpd.exe进程占用cpu100%的解决方法
- extjs的gridpanel的数据内容不能复制解决办法
- Fast Precomputed Ambient Occlusion for Proximity Shadows
- 【论文写作助手】综述论文行书的思路
- Android利用Fiddler进行网络数据抓包
- MFC获取系统时间的几个方法
- 新年寄望:从小做起,活在当下
- Android利用tcpdump和wireshark抓取网络数据包
- VS2010使用Nunit的断点功能