Linux有丰富的工具,这些工具组合来使用会更增强大。性能工具也同样,单独使用虽然也没有问题,可是和其余的工具组合起来就能显著提升有效性和易用性。shell
如同前面章节所述,性能调查最有价值的步骤之一就是保存在调查过程当中发出的命令和产生的结果。Linux提供了两个命令:tee和script,前者可以将工具的输出保存为文件,后者能记录每一个按键和屏幕上的每个输出。这些信息保存下来,便于之后的查看。bash
自动执行命令很重要,由于它能够减小出错的机会,是你在思考问题时不需记住全部的细节。在你一次性键入又长又复杂的命令行以后,bash shell和watch命令可以可让你周期性地自动执行这些命令,不须要再次输入。函数
Linux有提供gnumeric电子表格,没有装图形界面,不介绍。工具
还有一些Linux的工具能使你肯定应用程序使用了哪些库,以及显示给定库提供的全部函数。ldd命令给出一个特定应用程序使用的所有共享库的列表。在你想要跟踪被应用程序使用的库的数量和位置时,这个命令颇有效。Linux中还有一个命令,objdump,它能够在指定库或应用程序中搜索并显示其提供所有函数。ltrace只能给出一个应用程序调用函数的名称,可是结合命令ldd和objdump,你就可以利用ltrace的输出来肯定指定函数属于哪一个库。性能
这个须要gcc工具,不介绍。测试
bash是Linux默认的shell,在每次使用Linux的时候,最有可能使用到它。bash一般用来编写功能强大的脚本,可是也能够直接在命令行中调用,从而可以让一些复杂的任务自动化。命令行
bash运行时脚本选项,使用while来周期性执行命令调试
选项blog |
说明ip |
while condition |
条件为真时,循环执行 |
do |
表示循环开始 |
done |
表示循环结束 |
用例示范,ifconfig不能周期性显示它们的统计信息,咱们可使用while来周期性执行ifconfig命令,用来查询接收数据包的实时状况。
while true;do sleep 1;ifconfig eth0|grep "RX packets";done; |
tee是个简单的命令,能够将命令的标准输出保存为文件而且同时进行显示。在想要保存并同时查看性能工具输出的时候,tee是颇有帮助的。好比,正在监控一个实时系统的性能统计信息的同时,保存这些数据已备未来对它们进行分析。
语法: -a是追加模式,不然会直接覆盖文件
<command>|tee [-a] [file] |
用法示例
vmstat 1 5 |tee /tmp/vmstat_out |
script命令能够将一个shell会话过程当中产生的所有输入和输出保存为文本文件。在调查性能问题的时候,准确记录被执行的命令是颇有用的,由于你能够在以后的时间查看执行过的测试。
script命令在执行的时候会启动一个新的shell,并记录这个shell存续期间全部的键盘动做和输入,已经生成的输出,并保存为文件。若是屏幕的输出有彩色或者加粗,会在输出文件中显示为esc字符。能够把TERM环境变量设置为dumb来解决。export TERM=dumb
语法:-a是追加输入,-t是增长计时信息
script [-a] [-t] [file] |
用法示例:输入exit或者ctrl-d组合来退出该shell
默认状况下,watch命令会每秒运行一条命令并将其输出显示到屏幕上。与那些不能周期性显示结果的性能工具一块儿工做时,watch就能发挥做用了。虽然说watch的功能能够用shell脚本代替,可是watch的使用更加简单,而且几乎哪里均可以使用。
语法
watch [-d[=cumulative]] [-n sec] <command> |
watch命令行选项
-d [=cumulative] |
突出显示样本之间变化的输出 |
-n sec |
更新等待的秒数 |
用法示例:watch会自动清屏的
ldd会列出对应的二进制文件所需的全部库,以及系统中有哪些文件能实现这些需求
对于分析二进制文件和库的各个方面来讲,objdump是一种复杂而强大的工具。尽管它有其余许多功能,它能够被用来肯定给定的库提供了那些函数。