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