OS X에서 특정 명령에 대한 리소스 사용량(% CPU)

OS X에서 특정 명령에 대한 리소스 사용량(% CPU)

명령 time -v출력% CPU 사용률Linux에서 주어진 명령에 대해. OS X에서 이 작업을 수행하는 방법은 무엇입니까? Linux/OS X의 차이점은 그림에 나와 있습니다.여기. 단기 실행 프로그램의 전체 실행 기간 동안 멀티 코어 사용률을 측정하고 싶습니다. top특정 시점에서 측정/평균을 계산하므로 작동하지 않을 수 있습니다.

답변1

sysstat 패키지를 설치하고 sar 명령을 사용할 수 있습니다. (https://tipstricks.itmatrix.eu/installing-sar-monitoring-tools/)

모든 CPU의 CPU 사용량(sar -u)

이는 모든 CPU에 대한 누적 실시간 CPU 사용량을 제공합니다. "1 3"은 1초마다 3번 보고됩니다. CPU 로드를 확인하려면 마지막 필드 "%idle"에 집중할 가능성이 높습니다.

$ sar -u 1 3
 Linux 2.6.18-194.el5PAE (dev-db)        03/26/2011      _i686_  (8 CPU)

  01:27:32 PM       CPU     %user     %nice   %system   %iowait       %steal     %idle
  01:27:33 PM       all      0.00      0.00      0.00      0.00      0.00    100.00
  01:27:34 PM       all      0.25      0.00      0.25      0.00      0.00     99.50
  01:27:35 PM       all      0.75      0.00      0.25      0.00      0.00     99.00
  Average:          all      0.33      0.00      0.17      0.00      0.00       99.50

다음은 몇 가지 변경 사항입니다.

sar -u Displays CPU usage for the current day that was collected until that point.
sar -u 1 3 Displays real time CPU usage every 1 second for 3 times.
sar -u ALL Same as “sar -u” but displays additional fields.
sar -u ALL 1 3 Same as “sar -u 1 3″ but displays additional fields.
sar -u -f /var/log/sa/sa10 Displays CPU usage for the 10day of the month from the sa10 file.

단일 CPU 또는 코어의 CPU 사용량(sar -P)

컴퓨터에 4개의 코어가 있고 각 코어가 수행하는 작업을 확인하려면 다음을 수행하십시오.

"-P ALL"은 모든 개별 코어에 대한 통계를 표시해야 함을 의미합니다.

아래 예에서 "CPU" 열 아래의 0, 1, 2, 3은 해당 CPU 코어 번호를 나타냅니다.

  $ sar -P ALL 1 1
  Linux 2.6.18-194.el5PAE (dev-db)        03/26/2011      _i686_  (8 CPU)

  01:34:12 PM       CPU     %user     %nice   %system   %iowait    %steal     %idle
  01:34:13 PM       all     11.69      0.00      4.71      0.69      0.00     82.90
  01:34:13 PM         0     35.00      0.00      6.00      0.00      0.00     59.00
  01:34:13 PM         1     22.00      0.00      5.00      0.00      0.00     73.00
  01:34:13 PM         2      3.00      0.00      1.00      0.00      0.00     96.00
  01:34:13 PM         3      0.00      0.00      0.00      0.00      0.00    100.00

"-P 1"은 두 번째 코어에 대한 통계만 표시한다는 의미입니다. (코어 번호는 0부터 시작합니다.)

  $ sar -P 1 1 1
  Linux 2.6.18-194.el5PAE (dev-db)        03/26/2011      _i686_  (8 CPU)

  01:36:25 PM       CPU     %user     %nice   %system   %iowait    %steal     %idle
 01:36:26 PM         1      8.08      0.00      2.02      1.01      0.00     88.89

다음은 몇 가지 변경 사항입니다.

sar -P ALL Displays CPU usage broken down by all cores for the current day.
sar -P ALL 1 3 Displays real time CPU usage for ALL cores every 1 second for 3 times (broken down by all cores).
sar -P 1 Displays CPU usage for core number 1 for the current day.
sar -P 1 1 3 Displays real time CPU usage for core number 1, every 1 second for 3 times.
sar -P ALL -f /var/log/sa/sa10 Displays CPU usage broken down by all cores for the 10day day of the month from sa10 file.

답변2

gnu 명령을 실제로 대체할 수 있는 명령은 없는 것 같습니다 time. 그래서 결국 이걸 설치하게 됐어요. OS X에서는 homebrew: 를 사용하여 gnu-time을 설치할 수 있습니다 brew install gnu-time. 그런 다음 특정 명령의 CPU 사용률을 측정하는 데 사용할 수 있습니다 gtime <command>. 테스트 결과 내 프로그램이 실제로 동시에 실행되는 것으로 나타났습니다 1.73user 0.13system 0:01.61elapsed 115%CPU.

관련 정보