Apache-如何优化Apache的性能,从编译和参数配置等方面考虑?

Apache-如何优化Apache的性能,从编译和参数配置等方面考虑?

瑾兮 发布于 2017-11-05 字数 0 浏览 1306 回复 4

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

晚风撩人 2017-11-11 4 楼

分两个方面回答这个问题:
1.通用性的优化:
a.去掉任何多余的东西,不需要用到的模块,不需要的日志。
b.根据机器的配置,配置适当的进程个数,如果是以进程方式运行。

2.个性化的优化:
用strace -ttt的方式跟踪下系统的运行情况,看下那个地方执行时间较多,然后由针对性的优化。

具体的参数可以上网搜索。

清晨说ぺ晚安 2017-11-09 3 楼

优化方案:

避免不必要的DNS查询

HostnameLookups Off
Deny/Allow from ip_address

Sendfile对于较大静态资源请求效率更高,同时建议关闭操作系统ipv6内核模块
减少不必要的系统内核调用

AllowOverride None 禁止去尝试打开.htaccess
Options FollowSymLinks 禁止去判断访问目录是否为连接
DirectoryIndex index.php index.html 合理的资源列表数握与位置顺序会节约更多的系统内核调用
Options MultiViews 低效的内容协商
保护简洁的目录层级结构
关闭不要必要的日志记录功能

节约系统内存资源:不要加载没有使用到的模块
MMap、Deflate(Gzip)、Expires、Header、Keep-Alive
有条件的话,自己编译Apache,并且支持Worker MPM
strace /usr/sbin/httpd -X -f /etc/http/conf/httpd.conf方便跟踪系统内核调用。-X即debug模式,只启用单个worker,且不从控制台分离。

参考:http://www.perfgeeks.com/?p=285

夜无邪 2017-11-06 2 楼

Apache的性能网上有挺多的,我转载几条跟配置有关的比较有用的:

禁用模块

  我们可以开始删除Apache中我们系统用不到的模块及功能,特别是:

  ●HostnameLookups(主机名查找),这增加了处理每个请求的开销,首先,服务器会对DNS系统做一个反向查询以找出客户系统的主机名,然后又进行正向查询看获得的主机名是否真实指向客户的IP。大多数情况下,你可以简单的关闭这个功能,如果你经常处理服务器日志,这个工作完全可以在以后进行。你可以通过在设置文件中加入指示HostnameLookups off来关闭这个功能。

  ●符号连接。当打开这个选项时,Apache将检查每个请求中是否包含对符号连接的引用,这将对请求中包含的每个路径调用一次lstat()系统调用。除非你准备使用符号连接,否则用 Options -FollowSymLinks 来关掉它。

  ●服务器状态信息。尽管这对测试与监控服务器很有用,但它也为服务器带来了额外的开销,你可以通过寻找任何类似SetHandler server-status的指示来关闭,如果可能,你可以在安装Apache时移除这个模块。

  ●在可以更精确的时候尽可能不要使用通配符之类的灵活选项,例如,对于DirectoryIndex指示,明确的指定设置文件列表,最常用的放在最前。

  ●除非你有很好的理由否则就允许CGI的执行,将似有的CGI文件放到一个特定的目录并为之设定正确的权限,这避免了Apache对每一个请求都要判断一次要求的是一个静态文件还是一个动态文件。

禁用日志

  写入日志信息是一个很花费时间的工作,尽管Apache保持日志文件的打开状态以节省打开文件的时间,但仍然得花费不少的时间。如果没有必要存储日志信息,你可以关闭这个选项以节省出更多的处理器时间,只需要在设置文件中把日志那一行注释掉就可以关掉它。

  如果必须保留日志,你可以关闭HostnameLookups选项(见上文)然后把日志文件拷备到另一台机器上做进一步分析。

  简化目录级的设置

  htaccess文件可以极大的扩展Apache的设置参数,而无需每次你改变设计都要编辑Apache主设置文件,但对这个文件的使用也降低了服务器的性能。

  如果使用这个文件,Apache必需首先在当前目录中查找是否存在这个文件,如果存在就解析这个文件并在当前目录中应用文件中的设置。更坏的是,Apache不仅要查看当前的目录,还要查看当前目录的所有上层目录是否包括htaccess文件以根据所有这些文件最终确定设置。

  如果你想最优化服务器的性能,你应该禁止使用htaccess文件,任何基本目录的设置都可以在主设置文件中进行,而主设置文件仅在服务器启动时解析一次。为了禁用htaccess文件,在任何节里加上指示AllowOverride None。

更多优化方法可查看:怎样优化Apache服务器的性能

泛泛之交 2017-11-05 1 楼

1.优化apache配置选项

修改MPM(多道处理器)参数
修改apache2.2子进程所有者
去掉不需要的模块

#LoadModule env_module libexec/mod_env.so
#LoadModule negotiation_module libexec/mod_negotiation.so
#LoadModule status_module libexec/mod_status.so
#server side include已经过时了
#LoadModule includes_module libexec/mod_include.so
#不需要将没有缺省index文件的目录下所有文件列出
#LoadModule autoindex_module libexec/mod_autoindex.so
#尽量不使用CGI:一直是Apache安全问题最多的地方
#LoadModule cgi_module libexec/mod_cgi.so
#LoadModule asis_module libexec/mod_asis.so
#LoadModule imap_module libexec/mod_imap.so
#LoadModule action_module libexec/mod_actions.so
#不使用安全认证可以大大提高访问速度
#LoadModule access_module libexec/mod_access.so
#LoadModule auth_module libexec/mod_auth.so
#LoadModule setenvif_module libexec/mod_setenvif.so

2.配置模块
- 配置静态页面压缩输出模块deflate
- 配置mod_cache模块
- 配置mod_expires模块
- 配置mod_limitipconn模块

3.编译配置参数
找到如下选项,并改成对应的数值

ServerLimit 64
ThreadLimit 128
StartServers 8
MaxClients 8192
MinSpareThreads 50
MaxSpareThreads 256
ThreadsPerChild 128
MaxRequestsPerChild 0

更多参考自

http://blog.csdn.net/sunwei_07/article/details/2487179