分析 Linux 命令以获取指标

分析 Linux 命令以获取指标

我正在尝试解压缩一个巨大的 .gz 文件。我想知道是否有一种方法可以分析此命令以获取命令执行时的 CPU 利用率

我正在寻找这样的东西

gunzip file.gz | profileTheCommand

答案1

将输出通过管道传输gunzip到分析工具不会让您走得太远,因为gunzip不会输出太多运行时信息。

不过,您可以使用标准的 Linux 分析工具,例如perf。查看以下教程:https://perf.wiki.kernel.org/index.php/Tutorial

例如,以下是解压约 100 MB 文件的配置文件统计信息:

$ perf stat -B tar xJf ghc-8.0.2-x86_64-deb8-linux.tar.xz 

 Performance counter stats for 'tar xJf ghc-8.0.2-x86_64-deb8-linux.tar.xz':

      14959.293532      task-clock (msec)         #    0.737 CPUs utilized          
            340822      context-switches          #    0.023 M/sec                  
                 0      cpu-migrations            #    0.000 K/sec                  
              2401      page-faults               #    0.161 K/sec                  
   <not supported>      cycles                                                      
   <not supported>      instructions                                                
   <not supported>      branches                                                    
   <not supported>      branch-misses                                               

      20.299894777 seconds time elapsed

根据您的内核版本,您可能会看到略有不同的输出。另请注意,perf可能无法编译以了解特定 CPU 中发生的所有事件。这就是<not supported>上面的消息的内容。

答案2

瓶颈可能是读/写,而不是 CPU。无论如何,时间(1)应该说明一切。

相关内容