apache httpd.exe占高cpu解决办法

一般来说,WinNT系统下使用IIS,而Apache在Linux下应用的比较多,但是依然有很多人在WinNT系统下使用Apache而非IIS,可能是基于对Windows系统的熟悉吧。今天就来说一下在Windows系统下如果优化Apache的性能。

mpm_winnt.c 是专门针对Windows NT优化的MPM(多路处理模块),它使用一个单独的父进程产生一个单独的子进程,在这个子进程中轮流产生多个线程来处理请求。也就是说mpm_winnt只能启动父子两个进程, 不能像Linux下那样同时启动多个进程。

mpm_winnt主要通过ThreadsPerChild和MaxRequestsPerChild两个参数来优化Apache,下面详细来说明一下。

ThreadsPerChild
这个参数用于设置每个进程的线程数, 子进程在启动时建立这些线程后就不再建立新的线程了. 一方面因为mpm_winnt不能启动多个进程, 所以这个数值要足够大,以便可以处理可能的请求高峰; 另一方面该参数以服务器的响应速度为准的, 数目太大的反而会变慢。因此需要综合均衡一个合理的数值。

mpm_winnt上的默认值是64, 最大值是1920. 这里建议设置为100-500之间,服务器性能高的话值大一些,反之值小一些。

MaxRequestsPerChild
该参数表示每个子进程能够处理的最大请求数, 即同时间内子进程数目.设置为零表示不限制, mpm_winnt上的默认值就是0.

官方参考手册中不建议设置为0, 主要基于两点考虑: (1) 可以防止(偶然的)内存泄漏无限进行,从而耗尽内存; (2) 给进程一个有限寿命,从而有助于当服务器负载减轻的时候减少活动进程的数量。

因此这个参数的值更大程度上取决于服务器的内存,如果内存比较大的话可以设置为0或很大的数字,否则设置一个小的数值。需要说明的是,如果这个值设置的太小的话会造成Apache频繁重启,在日志文件中会看到如下的文字:

 代码如下 复制代码

Process exiting because it reached MaxRequestsPerChild. Signaling the parent

这样一来降低了Apache的总体性能。

另外,可以通过查看Apache提供的server-status(状态报告)来验证当前所设置数值是否合理,在httpd.conf文件中做如下设置来打开它:

# 首先需要加载mod_status模块
LoadModule status_module modules/mod_status.so
 
# 然后设置访问的地址

 代码如下 复制代码
<Location /server-status>
    SetHandler server-status
    Order deny,allow
    Deny from all
    # 如果限制某个IP访问则设置为 Allow from 192.168.1.1
    Allow from all
</Location>

综合来说,因为Windows NT下Apache只能启动父子两个进程,因此只能通过增大单个进程的线程数以及单个进程能够处理的最大请求数来进行优化。其他优化的参数同Linux系统下是一样的,大家可以加以参考。下面针对上述两个参数给出一个建议的设置:

 代码如下 复制代码

<IfModule mpm_winnt.c>
  ThreadsPerChild 250
  MaxRequestsPerChild 5000
</IfModule>

时间: 2024-12-24 02:46:50

apache httpd.exe占高cpu解决办法的相关文章

apache httpd.exe占高cpu和高内存并向外网发大流量包解决方法

自己的机器出这种情况有很多了,下面看我一步步的解决办法吧. 一,把服务器上的udp商品全部关闭 二,那就是检测服务器是不是网站中毒了,经过分析是我的一个企业网站用的dedecms被人给上了phpddos了,这样原因找到了就好办了, 三,删除phpddos文件,把网站安全做好就行了. 经验: 后来把phpddos代码下载来看了一下,它的核心代码用上了fsockopen(),如果你的服务器没用这个php函数,可以直接禁止,这样phpddos也没有办法了, 本站原创教程转载注明:http://www.

显卡温度过高怎么办? 显卡温度过高的解决办法

显卡温度过高怎么办?显卡温度过高会烧显卡吗?等等这些关于显卡温度的问题经常会有不少电脑爱好者在问,要先搞清楚电脑显卡温度是否过高,首先大家必须清楚怎么查看显卡温度,而不是凭感觉.如果您怀疑电脑显卡温度过高,可以看看怎么看硬件温度 这篇文章里的怎么看显卡温度,来获取当前显卡的温度是多少. 那么显卡温度什么时候是显卡温度过高呢?这个问题其实也是很有学问的,根据季节不同室内温度不同,其结果也不一样,比如夏天由于室内温度比较高,一般应用下,显卡温度一般不超过80度我们都认为是正常的,如果是冬天显卡温度可

ESET NOD32与iTunes导致AppleMobileDeviceService.exe占用CPU100%的解决办法

  问题分析: 可能是iTunes与当前电脑NOD32有冲突,错误防护导致了iTunes既不能获得网络权限,也不能正常运行进行iTunes同步等操作. 解决办法: 打开NOD32主界面,按F5进入设置,依次找到"病毒和间谍防护程序"–"排除",将iTunes.exe加入到排除列表,默认路径为 C:Program FilesiTunesiTunes.exe 这个 当然如果你有取舍,经过Pop的测试,卸载iTunes或者NOD32后就解决了问题,电脑运行就不卡了.

apache No input file specified的解决办法

apache No input file specified,今天是我们配置apache RewriteRule时出现这种问题,解决办法很简单如下 打开.htaccess 在RewriteRule 后面的index.php教程后面添加一个"?" 完整代码如下 .htaccess RewriteEngine on RewriteCond $1 !^(index.php|images|robots.txt)   RewriteRule ^(.*)$ /index.php?/$1 [L] 如

电脑任务栏变宽了怎么办?任务栏变高了解决办法

注意: 如果你锁定了任务栏,将无法上下拖动任务栏的,解除锁定任务栏的方法是:在任务栏空白处右击一下,去掉勾选[锁定任务栏]. 解决办法 (去掉工具栏中的所有对勾(语言栏,桌面,快速启动等项目) 只需要把鼠标移到任务栏的上边线上,然点鼠标就会变成上下箭头 ,向下一拉就会变回来了.   如果按上面方法无法解决的话,可能是中毒了,我们可以如下操作来把任务栏修复: 1.下载系统急救箱. 2.点击"开始修复"按钮. 3.待扫描结束后在左侧对话框中选择需要修复的问题. 4.修复完毕,建议下载全球领

关于路由器CPU利用率过高的解决办法

第一步, show process cpu 如显示IP input process is using a lot of CPU resources,检查以下情况: 一.Fast switching 在大流量的外出接口上是否被disabled.可以用 show interfaces switching 命令察看接口流量.然后在接口上重新 Re-enable fast switching .记住 fast switching是配置在output 接口. 二. Fast switching on th

Mysql占用Cpu过高故障解决办法

服务器最近出现Mysql Cpu 占用过高的故障,排查过程如下:  代码如下 复制代码 //登录 Mysql #mysql -u root -p //查询当前正在执行的 SQL 语句 mysql>SHOW FULL processlist; 然后根据查询出来的结果定位问题所在,然后就可以解决了. 这样我们就可以根据占cpu的sql进行分析然后对数据库进行优化或对sql进行优化处理 还有一种方法就是修改mysql等待时间wait_timeout这个也可以解决,不过要注意你网站打速度各种因素,不要导

mysql占用CPU过高的解决办法(添加索引)_Mysql

下面是MYSQL占用CPU高处理的一个例子,希望对遇到类似问题的朋友们有点启发.一般来说MYQL占用CPU高,多半是数据库查询代码问题,查询数据库过多.所以一方面要精简代码,另一方面最好对频繁使用的代码设置索引. 今天早上起来 机器报警 一查负载一直都在4以上 top了一下 发现 mysql 稳居 第一 而且相当稳定 我擦 重启一下mysql不行 mysql> show processlist;一下 发现xxx网站有两条 查询语句 一直 在列,我擦 该站 也就30多万条记录 量也不大 不可能是机

Firefox浏览器狂占CPU解决办法_应用技巧

忍无可忍,赶紧调用 Process Explorer ,发现单个 PID 占用大量的 CPU 上下文交换资源,如图: 看了一下,不知道 "jpeg_free_large" 是干啥的,遂用 "Firefox jpeg_free_large" Google 一下,出来的一堆东西里有帖子说可能和 Apple 的 QuickTime 插件有关.我也不知道如何删除该插件,到 Firefox 安装目录下的 Plugins 里看了一下,还真有一堆文件是 QuickTime 相关的