7点微信公众号:请点这里。7点测试网QQ总群:277957570。

7点测试网

 找回密码
 注册7点

QQ登录

只需一步,快速开始

查看: 1181|回复: 1

关于apache一次小调优的思考(原创)

[复制链接]
发表于 2014-1-31 00:31:57 | 显示全部楼层 |阅读模式
本帖最后由 qa004 于 2014-2-7 11:18 编辑

关于apache调优的地方有很多,一个小的开启或关闭,参数值的大小都会影响到系统的性能。我要讲的是关于.htaccess的问题,最开始接触apache优化的时候,看了关于25个Apache性能优化的技巧的文章 http://www.7dtest.com/site/thread-5843-1-1.html 其中有一条是禁用 .htaccess;那么这个.htaccess为什么禁用?如何产生?影响多大?后来查了一些这方面的资料,先来看看官方的解释
避免使用.htaccess文件有两个主要原因:
首先是性能。如果AllowOverride启用了.htaccess文件,则Apache需要在每个目录中查找.htaccess文件,因此,无论是否真正用到,启用.htaccess都会导致性能的下降。另外,对每一个请求,都需要读取一次.htaccess文件。所以,如果请求/www/htdocs/example中的页面,Apache必须查找以下文件
/.htaccess
/www/.htaccess
/www/htdocs/.htaccess
/www/htdocs/example/.htaccess
其次是安全。这样会允许用户自己修改服务器的配置,这可能会导致某些意想不到的修改,所以请认真考虑是否应当给予用户这样的特权。但是,如果给予用户较少的特权而不能满足其需要,则会带来额外的技术支持请求,所以,必须明确地告诉用户已经给予他们的权限,说明AllowOverride设置的值,并引导他们参阅相应的说明,以免日后生出许多麻烦。

通过资料知道了如何设置禁止.htaccess,和为什么禁止。但是影响范围和时间到底多大,还是一直没有整清楚。所以开始着手测试一下,对比关闭.htaccess前后对性能的影响到底有多少。
首先(未禁止.htaccess的情况),利用脚本执行系统场景操作,在通过linux跟踪监控apache进程输出信息(里面一些文件使用a、b、c代替),会多次产生如下这样无效的调用:
open("/var/www/html/aa/bb/.htaccess", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/var/www/html/aa/bb/cc/.htaccess", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/var/www/html/aa/bb/cc/dd/.htaccess", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/var/www/html/aa/bb/cc/dd/ee/.htaccess", O_RDONLY) = -1 ENOTDIR (Not a directory)
禁止了.htaccess之后,发现open.htaccess已经没有调用了;
但是对比了多次禁止.htaccess前后的测试结果都不是很明显,而且有时候响应时间反而增加了,所以这个问题一直困扰着我。直到后来深入学习之后发现open .htaccess"这样一次调用耗时大概在0.00001秒(每次调用时长都不一样,这只是其中一个大概的值),有时候跟踪一个进程大概有几百到几千次的调用。我测试跟踪出来的将近一千次,我们这里就按照1000次算吧!进程数就按照3个算,那就是1000*0.00001*3=0.03秒;也就是0.03秒是对我这次测试的影响;这下就很清楚了为什么之前的测试效果不明显,因为并发很小的时候,影响的时间很低;影响的范围和时间都很清楚了。
后记:对于一次简单的测试,影响感觉不是很大,可以说都能忽略不计,但是对于一个高并发,并且操作频繁的网站来说还是有一定影响的。
另外,我测试时候的会发现禁止.htaccess之后,有时候会导致响应时间增加,也就是其他linux内核调用增多,这里我怀疑主要是sql语句问题导致的,因为我测试的流程有一些不合理的sql,包括一些索引未建好的语句。是否属实,有待验证。
发表于 2014-2-8 11:21:50 | 显示全部楼层
嗯。非常不错。
您需要登录后才可以回帖 登录 | 注册7点

本版积分规则

QQ|Archiver|手机版|小黑屋|7点测试网 ( 京ICP备09084002号

GMT+8, 2018-11-17 16:35 , Processed in 0.130875 second(s), 19 queries .

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表