메트릭에 대한 Linux 명령 분석

메트릭에 대한 Linux 명령 분석

대용량 .gz 파일의 압축을 풀려고 합니다. 이 명령을 분석하여 명령이 실행되는 동안 CPU 사용률을 얻을 수 있는 방법이 있는지 알고 싶습니다.

나는 이런 것을 찾고 있어요

gunzip file.gz | profileTheCommand

답변1

출력을 분석 도구로 파이프하면 런타임 정보가 많이 출력되지 않으므로 gunzip결과가 그리 멀지 않습니다 .gunzip

그러나 표준 Linux 분석 도구(예 perf: . 아래 튜토리얼을 확인하세요.https://perf.wiki.kernel.org/index.php/Tutorial

예를 들어 압축이 풀린 약 100MB 파일의 프로필 통계는 다음과 같습니다.

$ 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)은 그 자체로 말해야 합니다.

관련 정보