Windwos2003系统中Apache性能优化

为了满足网站高负荷的要求,在调整Apache参数时发现进程经常占用内存过多导致当机。经过不断的优化和修改参数组合,终于让服务器稳定 下来,可以满足大量访问的考验和应用要求。笔者总结了调试过程中的问题和解决办法如下,以供有类似需求的网管员参考(系统环境为Windows Server 2003和apache2.2.8):

1、http-mpm.conf设置

Apache的线程数控制文件为http-mpm.conf,在conf/exrtra目录下面,要使该配置文件起作用需要在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

</IfModule>

其中ThreadLimit是占用系统线程数限制,修改后会在apache-status中直接看到效果,就是对应的最大的可用线程数(如图所示)。

MaxRequestsPerChild是进程的最大的请求数目,既指网站收到请求的缓存数。设置太小了会影响服务器性能,因为会占用较多cpu时 间,太大了则会占用内存资源。一般大型的网站文件个数都是成千上万,所以管理员应该根据网站情况自己设定,只要不为0(无限制)就可以,以防止内存溢出。

ThreadsPerChlid是Apache进程的子线程数,意思是服务器开了这么多的线程数来等待响应客户端请求。该参数需要根据 apache-status实时的监控情况来调节,太大会导致内存增长过快,直到服务器当机,太小会导致服务器连接队列在高峰期时占满,从而导致网站连接 慢。同时我们应该修改另一个配置文件httpd-default.php中的超时设置来配合这个参数。

2、httpd-default.conf设置

在httpd.conf中去掉Include conf/extra/httpd-default.conf前的#以使httpd-default.php生效。我们需要调节以下参数:

Timeout 15

该参数为连接超时,缺省的300秒显然太大,缩小该参数就会减少同时连接数,即用户实际占用的线程数,这样就可以起到配合上面ThreadsPerChlid参数的作用。

KeepAlive On

该参数为是否保持活连接,目前网站中一个页面一般会包含多个文件,所以相应用户访问时会有多个请求,因此开启可以提高服务器性能。

MaxKeepAliveRequests 50

该参数为最大的活连接请求数,可以根据网页实际包含的文件数目自行调节。

KeepAliveTimeout 5

该参数为活连接的超时时间,一般只要设置成小于Timeout即可。

这样设置后,Apache在响应请求和防止恶意攻击方面就取得较为平衡的效果,当然由于内存回收机制和进程管理不同,Windows下长期运行 Apache还是不如Unix稳定,因此我们可以让Apache在每天凌晨访问人数少时自动重启一次,以回收资源。用Windows自带的计划任务就可以 简单的实现。这样,我们就使Apache在Windows平台下像Unix一样长期稳定的提供服务了。

 

windows下apache及mysql定时自动重启&服务器定时自动重启

有时候觉得,服务器运行时间过长,造成服务器内存等压力过大。因此,不用重新启动服务器的情况下,完成apache和mysql的内存释放,是非常有益处的(把重启时间设置在访问量最低的)。
首先,apache的重新启动。

有两种apache自动定时重启的方法(两种,第二种可一同时启动apache和mysql,所以推荐一下第二种):

第一种、使用任务计划
开始>>程序>>附件>>管理工具>>任务计划
添加任务计划>>下一步>>apache restart>>选择时间(可以设置的为每天凌晨2-4点)>>一路确定即可。

第二种(个人觉得比较简单,同样也是任务计划) 采用at命令添加计划任务

1、在c:盘根目录新建一个apacheautostart.bat文件,然后右键编辑,将文件内容设为如下后保存:

CODE:

@ECHO OFF
net stop apache2
net start apache2
net stop mysql
net start mysql
(附加说明:上面的apache2与mysql为服务名称。)

2、“开始”-》运行“cmd”-》执行命令“at 04:00 c:apacheautostart.bat”
这样每天早晨4点系统就会自动重启apache与mysql
(附加说明:04:00为重启时间,c:autostartserver.bat为第一步的bat文件地址)

mysql的重新启动,也通过上面at命令方法重新启动了,所以推荐一下第二种方法。

同样,你也可一给自己的服务器加上一个定时自动重启的功能(比如每周重新启动服务器一次)。

可以用at命令和shutdown命令配合实现。

AT命令可以安排在特定日期和时间运行命令和程序,shutdown则可以在命令行下关闭并重启计算机,要在每周日的特定时间自动重启计算机,只需 在命令提示符下输入“at 02:00 /every:星期一 shutdown /l /r /y /c”,这将在每周一的凌晨2点自动重启计算机。

时间: 2024-11-14 12:10:30

Windwos2003系统中Apache性能优化的相关文章

Wins2003系统中Apache性能优化方法_win服务器

为了满足网站高负荷的要求,在调整Apache参数时发现进程经常占用内存过多导致当机.经过不断的优化和修改参数组合,终于让服务器稳定 下来,可以满足大量访问的考验和应用要求.笔者总结了调试过程中的问题和解决办法如下,以供有类似需求的网管员参考(系统环境为Windows Server 2003和apache2.2.8): 1.http-mpm.conf设置 Apache的线程数控制文件为http-mpm.conf,在conf/exrtra目录下面,要使该配置文件起作用需要在httpd.conf 中将

Apache性能优化几种实用小技巧

Apache是世界使用排名第一的Web服务器软件.它可以运行在几乎所有广泛使用的计算机平台上.Apache源于NCSAhttpd服务器,经过多次修改,成为世界上最流行的Web服务器软件之一.Apache取自"a patchy server"的读音,意思是充满补丁的服务器,因为它是自由软件,所以不断有人来为它开发新的功能.新的特性.修改原来的缺陷.Apache的特点是简单.速度快.性能稳定,并可做代理服务器来使用.  本来它只用于小型或试验Internet网络,后来逐步扩充到各种Unix

Apache性能优化技巧

apache|技巧|性能|优化 作者:徐永久 本文简要介绍了几个优化 Apache 的技巧,在实战中十分有用. 升级 Apache 到最新版本,新版本往往包含性能提升和安全更新. 在 httpd.conf 中设置 "HostNameLookups off" 能避免针对每个访问者的 DNS 域名的反向查询. 对于繁忙的网站,在 httpd.conf 中设置 "MaxClients 230" 或者更高.这项设置让更多的 httpd 进程同时响应请求,并避免了处理器排队的

25个Apache性能优化技巧

开发人员都知道Apache 一直是稳坐web服务器领域的霸主地位,本文主要介绍让Apache性能显著提升的25个优化技巧,下面跟小编一起来学习一下! Apache 部分: 1. 移除不用的模块. 2. 使用 mod_disk_cache NOT mod_mem_cache . 3. 扁平架构配置mod_disk_cache. 4. 安装恰当的Expires, Etag, 和 Cache-Control Headers . 5. 将缓存放在独立的磁盘 6. 使用管道日志替代直接记录 7. 将日志放

从C#垃圾回收(GC)机制中挖掘性能优化方案

GC,Garbage Collect,中文意思就是垃圾回收,指的是系统中的内存的分配和回收管理.其对系统性能的影响是不可小觑的.今天就来说一下关于GC优化的东西,这里并不着重说概念和理论,主要说一些实用的东西.关于概念和理论这里只做简单说明,具体的大家可以看微软官方文档. 一.什么是GC                                                                                              GC如其名,就是垃圾收集

技巧:ASP.NET设计中的性能优化问题

asp.net|技巧|设计|问题|性能|优化 一.SqlDataRead和Dataset的选择 Sqldataread优点:读取数据非常快.如果对返回的数据不需做大量处理的情况下,建议使用SqlDataReader,其性能要比datset好很多.缺点:直到数据读完才可close掉于数据库的连接 (SqlDataReader 读数据是快速向前的.SqlDataReader 类提供了一种读取从 SQL Server 数据库检索的只进数据流的方法.它使用 SQL Server 的本机网络数据传输格式从

ASP.NET设计中的性能优化问题

asp.net|设计|问题|性能|优化 一.SqlDataRead和Dataset的选择 Sqldataread优点:读取数据非常快.如果对返回的数据不需做大量处理的情况下,建议使用SqlDataReader,其性能要比datset好很多.缺点:直到数据读完才可close掉于数据库的连接 (SqlDataReader 读数据是快速向前的.SqlDataReader 类提供了一种读取从 SQL Server 数据库检索的只进数据流的方法.它使用 SQL Server 的本机网络数据传输格式从数据库

Mac系统中Apache Tomcat安装配置

Apache是普通服务器,本身只支持html即普通网页,可以通过插件支持PHP,还可以与Tomcat连通(单向Apache连接Tomcat,就是说通过Apache可以访问Tomcat资源.Tomcat无法取访问Appache资源).Appache只支持静态网页,但像asp,php,cgi,jsp等动态就需要Tomcat来处理.对于Apache Tomcat 估计很多童鞋都会,那么今天就简单说下在mac上进行tomcat的安装; 昨天下载了一下Tomcat本以为很快完成,不过还是遇到了一些坑,简单

Android中SparseArray性能优化的使用方法_Android

之前一篇文章研究完横向二级菜单,发现其中使用了SparseArray去替换HashMap的使用.于是乎自己查了一些相关资料,自己同时对性能进行了一些测试.首先先说一下SparseArray的原理.   SparseArray(稀疏数组).他是Android内部特有的api,标准的jdk是没有这个类的.在Android内部用来替代HashMap<Integer,E>这种形式,使用SparseArray更加节省内存空间的使用,SparseArray也是以key和value对数据进行保存的.使用的时