httpd.exe占用cpu 100%解决办法
发布:smiling 来源: PHP粉丝网 添加日期:2013-11-24 23:20:37 浏览: 评论:0
httpd.exe是apache的一个进程,有了它我们的网站才正常运行,但最近我发现我的httpd.exe占cpu 100%一直高居不下,下面我来分享一些解决办法。
网上说了是我们没有限制apache的并发数与子进行数,后来百度得出下面代码,编辑httpd.conf
- Win32DisableAcceptEx ##加入这行
- ThreadsPerChild 250
- MaxRequestsPerChild 0
重启apache就解决了。
MaxRequestsPerChild这个指令设定一个独立的子进程将能处理的请求数量。在处理“MaxRequestsPerChild 数字”个请求之后,子进程将会被父进程终止,这时候子进程占用的内存就会释放,如果再有访问请求,父进程会重新产生子进程进行处理。
如果MaxRequestsPerChild缺省设为0(无限)或较大的数字(例如10000以上)可以使每个子进程处理更多的请求,不会因为不断终止、启动子进程降低访问效率,但MaxRequestsPerChild设置为0时,如果占用了200~300M内存,即使负载下来时占用的内存也不会减少。内存较大的服务器可以设置为0或较大的数字。内存较小的服务器不妨设置成30、50、100,以防内存溢出
另一种解决办法
如果你以前是没有问题,突然有问题了而且服务器安装了金山毒霸,这个可能是金山毒霸或者升级精灵修改了WINSOCK导致
解决办法
在win命令行cmd下,输入以下命令
- netsh winsock reset
还有可能碰到一种情况就是否cpu没有点,内存占很高或突然卡死过一会就好了,这个解决办法可尝试在httpd.conf加入
- <IfModule mpm_winnt.c>
- ThreadsPerChild 1000
- MaxRequestsPerChild 10000
- Win32DisableAcceptEx
- </IfModule>
最后上面的办法解决了不根本的问题,我们可以对apache进行优化,最常用的就是apache缓存优化。
apache缓存分为两种缓存模式(mod_disk_cache与mod_mem_cache):
mod_disk_cache
一个基于磁盘的存储管理模块。
基于硬盘文件存储的缓存由mod_disk_cache 模块实现:
- <IfModule mod_cache.c>CacheDefaultExpire 3600
- CacheMaxExpire 86400
- CacheLastModifiedFactor 0.1
- <IfModule mod_disk_cache.c>
- CacheRoot /usr/local/apache/cache
- CacheEnable disk /
- CacheDirLevels 5
- CacheDirLength 3
- CacheMaxFileSize 10000000
- CacheMinFileSize 1
- </IfModule>
- </IfModule>
拷贝上面内容到apache 的 httpd.con文件中,在httpd.conf文件中搜索:
- #LoadModule cache_module modules/mod_cache.so // 去掉前面的# 号
使用磁盘文件缓存:
- #LoadModule disk_cache_module modules/mod_disk_cache.so // 去掉前面的# 号
mod_mem_cache
一个基于内存的存储管理模块。mod_mem_cache可以被配置为两种不同的操作模式:①缓存打开的文件描述符;②在堆(heap)上缓存对象。mod_mem_cache既可以用于缓存本地生成的内容,也可以用于为反向代理模式下的mod_proxy缓存后端服务器输出的内容。
基于内存的缓存主要由 mod_mem_cache 模块实现:
- <IfModule mod_cache.c>
- <IfModule mod_mem_cache.c>
- CacheEnable mem /
- MCacheSize 4096
- MCacheMaxObjectCount 2000
- MCacheMinObjectSize 1
- MCacheMaxObjectSize 2048
- </IfModule>
- </IfModule>
安装完成之后,需要搜索
- LoadModule cache_module modules/mod_cache.so // 去掉前面的# 号
使用内存文件缓存:
- #LoadModule mem_cache_module modules/mod_mem_cache.so // 去掉前面的# 号
Tags: httpd exe 占用 100%
相关文章
- ·Apache中禁止IP段,在httpd.conf中的写法(2013-11-14)
- ·Apache中httpd.conf的中文件详解(2013-11-22)
- ·apache检测httpd.conf 配置文件错误行语句(2013-11-23)
- ·apache httpd.exe占高cpu解决办法(2013-11-23)
- ·httpd.exe - 应用程序错误: 0x0075d315 指令引用的 0x065bd810 内存(2013-11-24)
- ·apache提示:错误应用程序 httpd.exe,版本 2.2.22.0,错误模块 ntdll(2013-11-25)
- ·apache httpd.exe占高cpu和高内存并向外网发大流量包(2014-08-23)
- ·Apache在httpd.conf配置文件中设置伪静态Rewrite(2014-09-20)
- ·apache弹出错误应用程序 httpd.exe,版本 2.2.22.0(2014-09-21)
- ·apache 80端口被iis占用如何解决(2013-11-25)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)