对Linux Bash脚本进行基准测试

时间:2011-11-06 22:06:20

标签: linux bash benchmarking

有没有办法对bash脚本的性能进行基准测试?该脚本下载远程文件,然后调用多个命令行程序进行操作。我想知道(或尽可能多):

  • 总时间
    • 下载时间
    • 在每个命令上花费的时间
    • - = [我认为这些可以包含在“时间”通话中吗? ] = -
  • 平均下载速度
    • 使用wget
  • 使用的总内存
  • 总CPU使用率
    • 每个命令的CPU使用率

我能够对bash脚本进行编辑,以插入特定点(即应用程序调用之间)所需的任何基准命令。不确定一些“顶级”忍者是否可以解决这个问题。在man文件中找不到任何有用的东西(至少是有限的理解)。

将在OSX终端以及Ubuntu上运行基准测试(如果有任何问题)。

2 个答案:

答案 0 :(得分:18)

strace -o trace -c -Ttt ./scrip
  1. -c用于跟踪cpu在特定呼叫上花费的时间。
  2. -Ttt将告诉您每次系统调用运行时的微秒时间。
  3. -o会将输出保存在文件“trace”中。

答案 1 :(得分:4)

你应该能够通过多种方式实现这一目标。一种方法是对每个感兴趣的命令使用time内置函数并捕获结果。您可能必须小心任何管道和重定向;

您也可以考虑捕获SIGCHLD,DEBUG,RETURN,ERR和EXIT信号并在其中放置时序信息,但您可能无法获得一些结果。

每个命令的CPU使用概念都不会给你任何有用的东西,所有命令都使用100%的cpu。内存使用是你可以提取的,但你应该看看

如果您想获得深入的流程统计信息,那么您可能希望使用strace ...有关详细信息,请参阅strace(1)手册页。我怀疑-Ttt,因为它在其他地方的建议是有用的,所有这些都告诉你系统调用时间,你想要其他进程跟踪信息。

您可能还想查看ltrace和dstat工具。

此处回答了类似的问题Linux benchmarking tools