使用 Apache Web 服务器作为示例,以了解如何分析公共配置的性能含义。使用应用程式跟踪来观察应用程式运行过程中进行的系统调用。通过统计调用的次数和发生的时间,您能够轻松地了解性能改变的影响。
您能够对应用程式进行跟踪,以找出他们暂停或不运行的原因。并且能够使用同样的方法,了解更多关于应用程式的信息并理解某些配置的性能含义。因为 Apache 很流行并且大多数读者对他都比较熟悉,所以本文使用 Apache 作为示例。Apache 所进行的每次系统调用都会对 Web 页面的提供带来延迟,通过跟踪不同配置下的 Web 服务器,您能够确定具体配置的影响。
应用程式跟踪概述
在应用程式的执行过程中,当需要打开文档、发送数据包或使用系统资源时,他会对基础操作系统进行相应的系统调用。跟踪应用程式意味着能够在调用发生时观察到这些系统调用,这将使得您能够深入地了解该应用程式的行为。在 Solaris 和 IBM AIX® 操作系统 (AIX) 中,使用 truss 命令完成这项任务,而在 Linux® 中则使用 strace。清单 1 显示了对 pwd 命令进行跟踪的示例。
清单 1. 跟踪 pwd 命令
-bash-3.00$ truss pwd
...
getcwd("/export/home/sean", 1025) = 0
/export/home/sean
write(1, " / e x p o r t / h o m e".., 18) = 18
_exit(0)
|
在删除开始处和加载该应用程式相关的输出内容后,您能够看到所进行的三次系统调用:
getcwd返回当前工作目录。输出内容中显示了字符串“/export/home/sean”返回到缓冲区。write能够显示给定的字符串。因为在其执行之后才显示这个系统调用,所以先输出了他的执行结果。还能够注意到,write系统调用的结果是写入字符的个数数目,在这个示例中为 17 加上一个回车。_exit使用错误代码 0 退出该程式,这个错误代码通常表示成功结束。
尽管这是个很简单的示例,但他演示了通过应用程式跟踪能够观察程式内部机制的程度。有关跟踪方面更深入的信息,请参见参考资料部分。
Apache 配置的简要介绍
能够通过一个名为 httpd.conf 的文档对 Apache Web 服务器进行配置。清单 2 显示了一个简单配置中的部分内容。
清单 2. 示例 httpd.conf
DocumentRoot "/var/apache/htdocs"
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory "/var/apache/htdocs">
Options Indexes FollowSymLinks MultiViews
</Directory>
|
第一行定义了在何处能够找到 HTML 文档。将任何的请求都映射到这个目录。假如请求 /project/charter.html,将使用 /var/apache/htdocs/project/charter.html 提供该页面。httpd.conf 中剩余的部分由两个 Directory 节组成。<Directory ...> 和 </Directory> 之间的任何内容都将应用于指定目录及其任何的子目录。在本例中,第一节将两项配置应用于根目录,而第二节则指向 /var/apache/htdocs。
假如多个节应用于单个请求,那么将会对这些命令进行组合,并且最适合的目录具备高优先级。例如,将使用 /var/apache/htdocs/project/charter.html 提供 /project/charter.html 请求的页面。/var/apache/htdocs 是 / 的子目录,所以 Options Indexes FollowSymLinks MultiViews 来自第二节,AllowOverride None 来自第一节。
能够对许多内容进行配置,并且每项内容都具备其性能含义。本文余下的内容重点关注于如何对这些改变的影响进行量化分析。
建立基准
在您进行任何调整之前,务必要了解系统当前的运行方式。使用 -X 参数启动 Apache,这个参数将强制 Apache 进入单进程调试模式。这样做能够确保将请求发送到正在进行跟踪的进程,并且消除常规进程间通信所带来的开销。
在守护进程启动之后,通过运行 ps -ef 找到相应的进程 ID,并查找 httpd 守护进程。在找到该进程之后,使用 truss -c -p PID 附加到该进程。-c 选项表示对系统调用进行计数,而不是逐个显示他们,而 -p 则表示将跟踪器附加于一个正在运行的进程。
使用 Web 浏览器请求文档。在页面加载之后,回到
文章整理:西部数码--专业提供域名注册、虚拟主机服务truss
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!




