`
爱像天空
  • 浏览: 205992 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

提高网站及服务器效率的优化方案 (二)

阅读更多
Apache参数的优化


按照前面提到的版本问题,Apache可以直接使用2.0版本产品线。针对Apache的优化主要是针对httpd.conf的优化,当然还有其他地方,如果特别留意的话,网上常有专家惊呼“居然这么多人忽略xxxx处的优化”等等,实际情况也确实如此,因为优化的地方实在太多了,httpd.conf只能做一个出发点。即便如此如果仅仅使用httpd.conf出厂默认值的话还是令人痛心不已。

httpd.conf的优化点有以下几处:

1. KeepAlive

我安装的Apache2.0出厂值居然是Off。除非你的网站只有文字没有图片,否则改成On。然后所有的麻烦就来了。

以前看到过一个Web2.0和Web1.0的服务比较图,有印象的就是AdSense是1.0,垃圾Chitika成了2.0,同样Akamai是1.0,BitTorrent成了2.0,真晕。其实Akamai的图片存储服务主要解决服务器的KeepAlive问题。看下面这个sample.html:

<html><body><p>Hello world</p><img src="hello.gif" /gt;lt;/bodygt;lt;/htmlgt;

当浏览器将请求发送给Apache后,Apache会为该用户建立连接,返回/sample.html的内容,浏览器解析HTML文件,发现还需要显示/hello.gif,就再次向Apache发出请求。这时如果KeepAlive为Off,Apache就需要重新建立连接。试想如果页面请求了1000个图片,Apache就需要建立1000个连接(但建立第N个时候N-x个连接已经被Apache聪明的关闭了)。如果KeepAlive为On,Apache会在同一个连接中处理所有这些请求,大大的节省了连接资源,可惜这个世界上有很多攻击者,他们会利用这个连接不断的特性不停的请求文件,耗尽服务器的资源。所以一些大公司像Yahoo、AOL都选用Akamai作为图片存储服务,结果这些公司的sample.html版本就成了这个样子:

<html><body><p>Hello world</p><img src="http://a620.g.akamai.net/hello.gif" /gt;lt;/bodygt;lt;/htmlgt;
(真实地图片地址会比这个复杂)

这样一来每次用户访问仅会向本机服务器的Apache请求一次,剩下的请求发送到akamai了。不必为akamai的能力担心,因为它有充足的抗负载技术,Web2.0的大喇叭们想用BT取代akamai,我靠。

2. MaxKeepAliveRequests

明白了1中的内容,这个看名字就知道一个连接可以最多发送多少次请求。默认是500。

3. KeepAliveTimeout

同样,两次请求间超过这个数字就中断这个连接。如果你的KeepAlive是On,MaxKeepAliveRequests是500,KeepAliveTimeout是100,你可以算算攻击者们用多久可以耗干你的Apache。我把KeepAliveTimeout设为5,因为从我网站受众人群的上网速度和网站的图片大小、数量考虑,5秒种可以完成加载多数页面。

4. StartServers

StartServers的数字表示Apache启动后直接创建的httpd数量。比如你的服务器平时平均需要100个httpd,如果把StartServers设为10就会导致Apache启动之初不停的创建剩下的90个httpd。如果你的服务器平时最多就用20个httpd,把StartServers设为50就浪费了资源。这个参数没什么大不了,因为Apache会自己趋向于适合的httpd服务数。

5. MinSpareServers、MaxSpareServers

保留备用的httpd服务数最小值和最大值。即当不需要这么多httpd服务时,依然最少保留MinSpareServers个服务,但不超过MaxSpareServers个服务。需要根据Apache的运行寻找经验值。

6. ServerLimit,MaxClients

比较重要的一个值。ServerLimit通常应该等于MaxClients。MaxClients决定了最大的httpd进程数,如果攻击者占用了MaxClients的httpd服务数,你的网站就拒绝正常访问者访问了。但MaxClients的大小受内存的限制,因此Apache2的默认值是250,并加上了ServerLimit参数作限制,如果想设大MaxClients,必须同时扩大ServerLimit,但ServerLimit不应超过MaxClients。

7. MaxRequestsPerChild

决定了每个httpd服务可以处理的最大请求数,超过这个数字就需要新的httpd服务,后者又由MaxClients限制,环环相套。我的MaxRequestsPerChild是10000。

8. HostnameLookups

设为Off,避免DNS查询的等待。

除了这8个参数外,Apache的另一个可塑点是加载的Module,把不需要的LoadModule注释掉即可,大大的节省了内存。但是问题是你不知道那个Module不需要,即便对照着Apache的Module文档朗读各个Module作用,也只能注释掉很少几个。下面是我比较踏实的注释掉的几个Module:
mime_magic_module、info_module、userdir_module、proxy_module、proxy_ftp_module、proxy_http_module、proxy_connect_module。

PHP加速器

PHP没什么值得优化的地方(这种东西真省心)。只是建议把php.ini中的数据库永久连接关闭以避免难堪的"Too many connections"错误。关闭php的mysql永久链接,即使php客户端mysql_pconnect这样的语句失效,但是不比担心现有的代码发生错误,因为PHP会自动将mysql_pconnect当作mysql_connect处理,并且在页面执行完毕自动关闭数据库链接。缺点是每次访问一个页面都会建立一次数据库链接,但不同于Apache的链接,因为Apache是每页都有N个链接机会,而数据库通常每页只需连接一次。

相对于对PHP本身的优化,安装一个PHP加速工具更有意义。以前是PHP Eaccelerator,而现在流行的是eAccelerator(此中有很多恩恩怨怨)。eAccelerator在程序层缓存php文件,而不是缓存php的执行、输出结果,因此不必担心时效性。eAccelerator安装非常简便,只需要按步实施即可。

eAccelerator是继前面提到的升级硬件、内存和升级MySQL到4.x外另一个可以显著导致网站速度提升的武器。


分享到:
评论

相关推荐

    大型网站优化方案

    本优化方案主要关注以下几个核心领域:前端优化、后端优化、数据库优化、缓存策略、负载均衡以及性能监控。 一、前端优化 前端优化主要包括代码压缩、资源合并、图片优化、CDN(内容分发网络)利用以及异步加载等...

    利用Linux和Squid建立缓存代理服务器的优化方案研究.pdf

    总的来说,利用Linux和Squid建立缓存代理服务器是一项实用的技术,它能显著提高内部网络的浏览效率,同时确保网络的安全性。通过合理的配置和优化,可以实现高效、安全的网络访问环境。对于系统管理员和IT专业人员来...

    关于服务器性能优化方法

    服务器性能优化是IT领域至关重要的一个环节,尤其在如今大数据和云计算时代,高效稳定的服务器...通过对服务器并发处理能力的科学评估和针对性优化,可以显著提升服务器的运行效率和服务质量,从而更好地支持业务需求。

    服务器运维方案.docx

    - **交换机路由设备**:确保网络设备的稳定运行,优化网络拓扑结构,提高网络传输效率。 - **机柜、电源、网线布局**:合理规划机房物理环境,保障散热、电力供应和布线整洁。 - **托管机房管理**:与机房服务商...

    ,NET提高服务器访问效率的做法

    通过以上策略,开发者可以有效地优化.NET应用程序,提高服务器访问效率,减少服务器负载,提升用户体验。记住,每个优化步骤都可能带来性能的显著提升,但也要注意平衡性能和功能,避免过度优化。

    华硕服务器优化Web 2.0网站系统解决方案

    【华硕服务器优化Web 2.0网站系统解决方案】 在当今网络时代,Web 2.0网站已经成为互联网行业的主流,其交互性强、用户参与度高的特点对服务器提出了更高层次的需求。华硕RS160-E5/PA4服务器是专为满足这些需求而...

    医院服务器存储设计方案(1).doc

    【医院服务器存储设计方案详解】 本方案针对东莞樟木头人民医院的服务器和...总之,这套设计方案旨在构建一个强大、可靠、灵活的服务器和存储架构,支撑樟木头人民医院的数字化和信息化进程,提升医疗服务质量和效率。

    大型网站性能优化方案

    本文将深入探讨“大型网站性能优化方案”,基于多年的实践经验,为优化工作提供指导。 首先,我们需要理解网站性能的重要性。快速加载的网站能够提高用户满意度,降低跳出率,从而增加转化率。而搜索引擎也将页面...

    Linux NFS网络服务器性能优化

    如果硬件条件有限,那么就需要从软件层面进行优化来提高NFS服务器的性能。 ##### 1. 清理NFS服务器磁盘碎片 定期清理磁盘碎片可以避免数据读写过程中的不必要的延迟。这不仅能够提高文件系统的响应速度,还能延长...

    戴尔服务器解决方案介绍

    戴尔服务器解决方案也特别强调能效比的优化,通过提高电源转换效率和智能电力管理,降低了企业的能源消耗和冷却成本。例如,戴尔服务器的一些型号实现了高达96%的电源转换效率,这在业界属于较高水平。 在支持的...

    web后台优化方案

    Web后台优化方案涉及的技术和策略广泛,包括但不限于缓存机制、数据库优化、服务器配置以及应用设计等多个方面。下面详细讲解标题中提到的知识点: 一、分布式缓存机制 分布式缓存是将缓存分布在网络的多个节点上,...

    APC服务器整合解决方案

    Gartner集团的数据显示,大约75%的中大型企业正着手或已经实施服务器整合项目,以优化IT基础设施,提高资源利用率。 服务器整合主要有四种类型: 1. **现有机柜内的整合**:在现有机柜内部通过虚拟化技术或物理...

    服务器硬件优化

    存储优化方案 - **采用SSD固态硬盘**:相较于传统的机械硬盘(HDD),SSD具有更快的读写速度和更低的延迟。 - **RAID配置**:通过不同的RAID级别实现数据冗余和性能提升。 - **缓存策略**:利用智能缓存技术提高...

    基于云计算循环加密的服务器响应效率优化.pdf

    基于云计算循环加密的服务器响应效率优化算法,正是针对这一需求而设计的。该算法旨在通过优化加密技术来提高云计算服务器的响应效率,并减少服务器响应时间。循环加密是一种加密方法,它反复使用某种算法对数据进行...

    sql数据库优化方案

    本文将深入探讨SQL数据库优化方案,包括查询优化、索引优化、存储优化和架构优化等策略,旨在帮助你提升数据库的运行效率。 一、查询优化 查询优化是数据库优化的基础,主要涉及SQL语句的编写。合理的SQL语句可以...

    2服务器设备维保方案.doc

    《服务器设备维保方案》是湖南睿云信息技术有限公司在2016年8月18日提出的一份详细服务文档,旨在为机房设备提供全方位的维保服务,确保服务器设备的稳定运行。 一、服务概述 该方案涵盖硬件保修服务、远程技术支持...

    服务器整合方案

    总结来说,服务器整合方案是应对IT系统复杂性和成本压力的有效策略,IBM通过向上扩展和向外扩展的技术手段,提供全面的解决方案,旨在优化资源分配,提高运营效率,同时降低企业的总体拥有成本。

    MySQL性能优化:提升数据库服务器效率的策略

    本文将探讨如何配置MySQL服务器以提高性能,包括硬件配置、数据库配置、查询优化和维护策略。 通过上述的硬件配置、软件配置、查询优化和维护策略,可以显著提高MySQL服务器的性能。性能优化是一个持续的过程,需要...

    10种java性能优化方案.docx

    ### Java性能优化方案详解 #### 一、理解性能优化的重要性 在现代软件开发中,特别是在Java领域,性能优化是一项至关重要的任务。随着系统的复杂性和规模不断增长,优化不仅仅是提高用户体验那么简单,更是确保...

    服务器数据库维护方案.doc

    本文档详细阐述了针对服务器及网络系统的一套全面维护方案,旨在确保集团业务的顺利运行,提高服务质量。 1. **服务器及存储硬件维护** - 故障诊断:对系统错误进行记录、分析,及时处理故障。 - 现场维修:通知...

Global site tag (gtag.js) - Google Analytics