日期:2014-05-17 浏览次数:20823 次
本文转自:http://blog.csdn.net/phphot/article/details/2544949
?
一、优化目的:
??? 公司中现有多个 apache 平台,其中网元管理系统、升级和注册授权系统、离线浏览系统和应用组所开发的系统都是运行在专用的服务器中,他们都是以业务为主的系统,所拥有的硬件资源比较多,可以着重优化 apache 的运行速度,以适当的资源换取更高的运行速度 。
??? 但是设备中运行的各个配置程序,他们是以性能为主的系统,所运行的环境就要相对恶劣,硬件资源限制非常多,不能供 web 程序随意使用,他们的优化方向应该是保证运行速度的基础上尽力压低资源消耗 。
??? 受限于此,很多外挂式加速程序都无法使用了,比如 memcache 、 eaccelerator 等,使用这些工具的前提就是内存足够大,或者资源足够多,通常是专用的 apache 服务器上才会用到,也就是我们的第一类系统中才可以使用的,在一个嵌入系统中使用其实是得不尝失的。下面将着重研究两种情况都使用的优化方法。
?
二、运行环境
??? 无论何时, apache 所运行的硬件环境都是对性能影响最大的因素,即使不能对硬件进行升级,也最好给 apache 一个单独的主机以免受到其他应用的干扰。但很明显,我们的配置页面程序无法满足这个要求。
??? 各个硬件指标中,对性能影响最大的是内存,对于静态内容(图片、 javascript 文件、 css 文件等),它决定了 apache 可以缓存多少内容,它缓存的内容越多,在硬盘上读取内容的机会就越少,而存取硬盘上的特定文件是一件很费时的操作,大内存可以极大提高静态站点的速度;对动态高负载站点来说,每个请求保存的时间更多一些, apache 的 mpm 模块会为每个请求派生出相应的进程或线程分别处理,而进程或线程的数量与内存的消耗近似成正比,因此增大内存对提高动态站点的负载和运行速度也极为有利
??? 其次是硬盘的速度,静态站点尤为突出, apache 不断的在读取文件并发送给相应的请求,硬盘的读写是极其频繁的;动态站点也要不断的加载 web 程序 (php 等 ) ,一个请求甚至要读取十几个文件才能处理完成,因此尽可能的提高硬盘速度和质量对提高 apache 的性能是有积极意义的。
??? 最后是 cpu 和网络, cpu 影响的是 web 程序执行速度,网络影响流量大小。
??? 影响性能的另一因素是操作系统, php 程序在类 unix 环境中的执行速度仍然比 windows 中要快,我们的系统都能满足这个要求了。
???
三、 apache 普通配置参数
? 1 、静态还是动态
使用 apache 的动态载入模块非常方便,因为在需要时模块才会被载入。虽然有些性能开销,但同时有利于减少服务器对内存的需求。
???? 静态载入虽然一次性载入所有需要的模块,增加内存消耗。因此我们全部采用动态载入的方法。
?
?? ? 2 、 hhostnamelookups off
??? 域名查找:这增加了处理每个请求的开销,首先,服务器会对 dns 系统做一个反向查询以找出客户系统的主机名,然后又进行正向查询看获得的主机名是否真实指向客户的 ip 。大多数情况下,你可以简单的关闭这个功能,如果你经常处理服务器日志,这个工作完全可以在以后进行。你可以通过在设置文件中加入指示 hostnamelookups off 来关闭这个功能。
?
3 、 options -followsymlinks
???