使用应用程序跟踪对性能改变进行量化分析
2006-08-26 08:12:12 来源:WEB开发网核心提示:使用 Apache Web 服务器作为示例,以了解如何分析公共配置的性能含义,使用应用程序跟踪对性能改变进行量化分析,使用应用程序跟踪来观察应用程序运行过程中进行的系统调用,通过统计调用的次数和发生的时间,但它演示了通过应用程序跟踪可以观察程序内部机制的程度,有关跟踪方面更深入的信息,您可以轻松地了解性能改变的影响,您
使用 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 退出该程序,这个错误代码通常表示成功结束。
尽管这是一个很简单的示例,但它演示了通过应用程序跟踪可以观察程序内部机制的程度。有关跟踪方面更深入的信息,请参见参考资料部分。
更多精彩
赞助商链接