• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • bios
  • 系统安装
  • 系统进程
  • Windows
  • LINUX
  • RedHat/Centos
  • Ubuntu/Debian
  • Fedora
  • Solaris
  • 麒麟系统
  • 红旗Linux
  • 苹果MAC
  • 注册表
  • 其它系统
您的位置:首页 > 操作系统 >麒麟系统 > APACHE性能方面的提示

APACHE性能方面的提示

作者:佚名 字体:[增加 减小] 来源:互联网 时间:2017-05-12

佚名 通过本文向大家介绍了apache性能,apache性能监控,apache性能优化,apache 性能测试,apache 服务器监控等相关知识,希望对您有所帮助,也希望大家多多支持linkedu.com

Apache2.0是一个多用途的web服务器,其设计在灵活性、可移植性和性能中求得平衡。虽然没有在设计上刻意追求性能指标,但是Apache2.0仍然在许多现实环境中拥有很高的性能。

相比于Apache 1.3 ,2.0版本作了大量的优化来提升处理能力和可伸缩性,而且大多数的改进在默认状态下就可以生效。但是,在编译时和运行时,都有许多可以显著提高性能的选择。本文阐述在安装Apache2.0时,服务器管理员可以改善性能的各种方法。其中,部分配置选择可以使httpd更好地利用硬件和操作系统的兼容性,其他则是以功能换取速度。
top
硬件和操作系统

影响web服务器性能的最大的因素是内存。一个web服务器应该从不使用交换机制,因为交换产生的滞后使用户总感觉"不够快",所以用户就可能去按"停止"和"刷新",从而带来更大的负载。你可以,也应该,控制MaxClients的设置,以避免服务器产生太多的子进程而发生交换。这个过程很简单:通过top命令计算出每个Apache进程平均消耗的内存,然后再为其它进程留出足够多的内存。

其他因素就很普通了,装一个足够快的CPU,一个足够快的网卡,几个足够快的硬盘,这里说的"足够快"是指能满足实际应用的需求。

操作系统是很值得关注的又一个因素,已经被证实的很有用的经验有:

  *

    选择能够得到的最新最稳定的版本并打好补丁。近年来,许多操作系统厂商都提供了可以显著改善性能的TCP协议栈和线程库。
  *

    如果你的操作系统支持sendfile()系统调用,则务必安装带有此功能的版本或补丁(对Linux来说,就是使用Linux2.4或更高版本,对Solaris8的早期版本,则需要安装补丁)。在支持sendfile的系统中,Apache2可以更快地发送静态内容而且占用较少的CPU时间。

top
运行时的配置
相关模块   相关指令

  * mod_dir
  * mpm_common
  * mod_status

 

  * AllowOverride
  * DirectoryIndex
  * HostnameLookups
  * EnableMMAP
  * EnableSendfile
  * KeepAliveTimeout
  * MaxSpareServers
  * MinSpareServers
  * Options
  * StartServers

HostnameLookups 和其他DNS考虑

在Apache1.3以前的版本中,HostnameLookups默认被设为 On 。它会带来延迟,因为对每一个请求都需要作一次DNS查询。在Apache1.3中,它被默认地设置为 Off 。如果需要日志文件提供主机名信息以生成分析报告,则可以使用日志后处理程序logresolve ,以完成DNS查询,而客户端无须等待。

推荐你最好是在其他机器上,而不是在web服务器上执行后处理和其他日志统计操作,以免影响服务器的性能。

如果你使用了任何"Allow from domain"或"Deny from domain"指令(也就是domain使用的是主机名而不是IP地址),则代价是要进行两次DNS查询(一次正向和一次反向,以确认没有作假)。所以,为了得到最高的性能,应该避免使用这些指令(不用域名而用IP地址也是可以的)。

注意,可以把这些指令包含在<Location /server-status>段中使之局部化。在这种情况下,只有对这个区域的请求才会发生DNS查询。下例禁止除了.html和.cgi以外的所有DNS查询:

HostnameLookups off
<Files ~ "\.(html|cgi)$">
HostnameLookups on
</Files>

如果在某些CGI中偶尔需要DNS名称,则可以调用gethostbyname来解决。
FollowSymLinks 和 SymLinksIfOwnerMatch

如果网站空间中没有使用 Options FollowSymLinks ,或使用了 Options SymLinksIfOwnerMatch ,Apache就必须执行额外的系统调用以验证符号连接。文件名的每一个组成部分都需要一个额外的调用。例如,如果设置了:

DocumentRoot /www/htdocs
<Directory />
Options SymLinksIfOwnerMatch
</Directory>

在请求"/index.html"时,Apache将对"/www"、"/www/htdocs"、"/www/htdocs/index.html"执行lstat()调用。而且lstat()的执行结果不被缓存,因此对每一个请求都要执行一次。如果确实需要验证符号连接的安全性,则可以这样:

DocumentRoot /www/htdocs
<Directory />
Options FollowSymLinks
</Directory>

<Directory /www/htdocs>
Options -FollowSymLinks +SymLinksIfOwnerMatch
</Directory>

这样,至少可以避免对DocumentRoot路径的多余的验证。注意,如果Alias或RewriteRule中含有DocumentRoot以外的路径,那么同样需要增加这样的段。为了得到最佳性能,应当放弃对符号连接的保护,在所有地方都设置FollowSymLinks ,并放弃使用SymLinksIfOwnerMatch 。
AllowOverride

如果网站空间允许覆盖(通常是用.htaccess文件),则Apache会试图对文件名的每一个组成部分都打开.htaccess ,例如:

DocumentRoot /www/htdocs
<Directory />
AllowOverride all
</Directory>

如果请求"/index.html",则Apache会试图打开"/.htaccess"、"/www/.htaccess"、"/www/htdocs/.htaccess"。其解决方法和前面所述的 Options FollowSymLinks 类似。为了得到最佳性能,应当对文件系统中所有的地方都使用 AllowOverride None 。
内容协商

实践中,内容协商的好处大于性能的损失,如果你很在意那一点点的性能损失,则可以禁止使用内容协商。但是仍然有个方法可以提高服务器的速度,就是不要使用通配符,如:

DirectoryIndex index

而使用完整的列表,如:

DirectoryIndex index.cgi index.pl index.shtml index.html

其中最常用的应该放在前面。

还有,建立一个明确的type-map文件在性能上优于使用"Options MultiViews",因为所有需要的信息都在一个单独的文件中,而无须搜索目录。请参考内容协商文档以获得更详细的协商方法和创建type-map文件的指导。
内存映射

在Apache2.0"

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • APACHE性能方面的提示

相关文章

  • 2017-05-12Kylin 2.0 服务器版安装vsftpd-2.0.4
  • 2017-05-12在KYLIN上装APACHE2.2需将EnableSendfile设置为off
  • 2017-05-12Kylin 挂在光驱的指令
  • 2017-05-12让KYLIN2.1默认自带的APACHE支持PHP
  • 2017-05-12Kylin 同时挂载USB闪存盘和移动硬盘的方法及注意事项
  • 2017-05-12WIN7/8/10+麒麟 双系统攻略讲解
  • 2017-05-12Openvpn在麒麟操作系统上的配置方法
  • 2017-05-12麒麟操作系统2.1 下载
  • 2017-05-12APACHE性能方面的提示
  • 2017-05-12KYLIN下如何安装MySQL5.0

文章分类

  • bios
  • 系统安装
  • 系统进程
  • Windows
  • LINUX
  • RedHat/Centos
  • Ubuntu/Debian
  • Fedora
  • Solaris
  • 麒麟系统
  • 红旗Linux
  • 苹果MAC
  • 注册表
  • 其它系统

最近更新的内容

    • WIN7/8/10+麒麟 双系统攻略讲解
    • 在KYLIN上装APACHE2.2需将EnableSendfile设置为off
    • APACHE性能方面的提示
    • Kylin 下挂载软驱的方法
    • 如何挂载U盘
    • 让KYLIN2.1默认自带的APACHE支持PHP
    • Kylin(麒麟系统)上安装Discuz!论坛出现乱码!
    • Openvpn在麒麟操作系统上的配置方法
    • Kylin 2.0 服务器版安装vsftpd-2.0.4
    • Kylin 挂载/卸载USB闪存盘的命令

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有