当前位置:首页 > 开发 > 研发管理 > 正文

Win2003下Apache性能优化 解决内存溢出 服务器重置问题

发表于: 2011-11-03   作者:2002wmj   来源:转载   浏览:
摘要: 一直习惯在Solaris和linux下跑amp,前些时服务器硬盘坏掉,所以启用新服务器。新系统是Windows 2003 Server,在上面按Unix上的经验配置Apache和Mysql时问题多多,经过折腾,总算是让服务器稳定下来,总结问题和解决办法如下(apache2.2.8+Mysql5.0.51a+php5.2.5): 1、Apache线程数和超时设置   &nbs

一直习惯在Solaris和linux下跑amp,前些时服务器硬盘坏掉,所以启用新服务器。新系统是Windows 2003 Server,在上面按Unix上的经验配置Apache和Mysql时问题多多,经过折腾,总算是让服务器稳定下来,总结问题和解决办法如下(apache2.2.8+Mysql5.0.51a+php5.2.5):

1、Apache线程数和超时设置

    Apache的线程数控制文件为conf/exrtra/http-mpm.conf,需要在httpd.conf中将 Include conf/extra/httpd-mpm.conf前#去掉,以使得http-mpm.conf生效。

   在Windows系统中,起作用的是Winnt mpm段,

<IfModule mpm_winnt_module>
    ThreadsPerChild      150
    MaxRequestsPerChild    0
</IfModule>

     缺省的配置一般够用,但负荷大的网站就要修改了,否则网站一下就变慢或没有响应了。实际可以根据apache-status查看apache实时连接状态,我的服务器最后设置如下:

<IfModule mpm_winnt_module>
    ThreadsPerChild    350
    ThreadLimit     350
    MaxRequestsPerChild    10000

Win32DisableAcceptEx
EnableMMAP Off
EnableSendfile Off

</IfModule>

    其中ThreadLimit是占用系统线程数限制,最好加上,否则会产生内存溢出导致Apache当掉。

    MaxRequestsPerChild我理解是请求的缓存数,太小了影响性能,占用cpu时间,太大了占用内存资源,想象一下你网站的文件个数,然后自己设定,只要不为0就可以,防止内存溢出。

    ThreadsPerChlid是apache的线程数,就是开了这么多的线程来等待响应客户端请求,需要根据apache-status实时的监控调节,大了会占用过多内存,小了会导致连接不上。而且应该同时修改httpd-default.php超时设置来配合。

    在httpd.conf中去掉Include conf/extra/httpd-default.conf前的#以使httpd-default.php生效。

其中调节以下参数

Timeout 15 (连接超时缺省为300,太大了,缩小会减少同时连接数,即上面占用的实际线程数)

KeepAlive On (开启可以提高性能,因为一个页面一般会有多个请求)

MaxKeepAliveRequests 50 (这个数目自己根据网页内容调节)

KeepAliveTimeout 5 (这个小于Timeout就行)

     Windows下长期运行Apache还是不如Unix稳定,可以让Apache在凌晨人少时自动重启,用Windows的计划任务可以非常方便的实现这一点,这样网管基本上可以安心睡觉了。

Win2003下Apache性能优化 解决内存溢出 服务器重置问题

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
内存泄漏问题的解决 内存泄漏(Memory Leaks)是当一个对象或变量在使用完成后没有释放掉,这个对象
内存泄漏问题的解决 内存泄漏(Memory Leaks)是当一个对象或变量在使用完成后没有释放掉,这个对象
内存泄漏问题的解决 内存泄漏(Memory Leaks)是当一个对象或变量在使用完成后没有释放掉,这个对象
不知道普元的EOS属于哪个分类,直接放在综合类里面了。 有个项目,使用EOS5.x开发的,部署在互联网
不知道普元的EOS属于哪个分类,直接放在综合类里面了。 有个项目,使用EOS5.x开发的,部署在互联网
维护一个老系统,发现有java.lang.OutOfMemoryError: Java heap space的情况,内存溢出,以下是大致
一、背景介绍 公司对外提供了一个API系统,提供了产品的搜索,查询,价格以及订单相关等功能,由我
在项目使用过程中, 由于我们使用多线程批量转化。 出现过内存溢出的问题。 特别是使用PDFbox时候,
本文所讲的是关于通过Java程序来找出内存溢出的原因的研究。 AD: 我曾经在刚入行的时候做过一个小
我曾经在刚入行的时候做过一个小的swing程序,用到了java SE,swing,Thread等东东,当初经验少也没
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号