使用应用程序跟踪对性能改变进行量化分析
2006-08-26 08:12:12 来源:WEB开发网清单 4. 配置了 AllowOverride 的示例 httpd.conf
DocumentRoot "/var/apache/htdocs"
<Directory />
Options FollowSymLinks
AllowOverride Limit
</Directory>
<Directory "/var/apache/htdocs">
Options Indexes FollowSymLinks MultiViews
</Directory>
重新启动 httpd 守护进程并再次运行这些测试,其结果如清单 5 所示。
清单 5. 开启了 AllowOverride Limit 的 100 次请求的结果
sunbox# truss -c -t write,read,open64,stat64,mmap64 -p 21136
^C
syscall seconds calls errors
read .012 200
write .021 200
mmap64 .007 100
stat64 .007 100
open64 .022 500 400
-------- ------ ----
sys totals: .072 1100 400
usr time: .141
elapsed: 16.660
初看起来,系统调用耗费的时间下降了,但这是因为使用了 -t 选项将跟踪任务限制于一些有意义的系统调用。大多数系统调用并没有发生变化,但现在有 500 次 open64 调用,其中有 400 次返回了错误。执行 open64 的时间增加了(从 0.006 秒增加到 0.22 秒),同时用户空间部分的时间也增加了(从 0.12 秒增加到 0.141 秒)。
时间增加是因为 Apache 现在必须完成附加的工作以处理该请求,即使没有配置重写。单独的 AllowOverride Limit 配置明显地增加了开销。问题依然存在,即什么导致了这些错误? 要回答这个问题,可以跟踪单个 Web 请求,如清单 6 所示。
更多精彩
赞助商链接