몇 가지 멀티 스레드 테스트를 작성했으며 이제 이 테스트의 최대 CPU 사용량이 100 * CPU_NUMBER
현재 컴퓨터의 최대 CPU 사용량과 동일한지 확인하고 싶습니다. 할 수 있나요?
UPD 0: 저는 Linux 시스템에 대해 이야기하고 있습니다.
답변1
sar
SAR은 System Activity Report의 약자입니다 . UNIX와 유사한 운영 체제에서 CPU, 메모리 및 IO 사용량을 보고하는 데 사용되며 sysstat
.
그런 다음 sysatat
개별 프로세스를 모니터링하도록 구성할 수 있습니다.협회
수집 빈도와 sar가 보고서를 보관하는 기간은 첫 번째 설정에 따라 결정됩니다.
그러한 데이터 수집은 "무료"가 아니므로 프로덕션 서버에 보관하지 않을 것이라는 점을 참고하시기 바랍니다.
일단 구성되면 명령을 사용 sar
하고 grep
스크립트의 보고서에서 데이터를 쉽게 추출 할 수 있습니다 awk
.
사용 중인 OS를 지정하지 않았으므로 배포판에서 sar/sysstat를 설정하는 방법을 검색해 보시기 바랍니다.
답변2
pidstat
sysstat
일반적으로 단일 프로세스 ID를 모니터링하고 각 스레드에 대한 통계를 인쇄하는 패키지의 일부입니다 . 예를 들어 실행 중인 Chrome 브라우저의 경우:
$ pidstat -t -p 27680 1
17:17:36 TGID TID %usr %system %guest %CPU CPU Command
17:17:37 27680 - 13.00 3.00 0.00 16.00 0 chrome
17:17:37 - 27680 9.00 1.00 0.00 10.00 0 |__chrome
17:17:37 - 27712 2.00 1.00 0.00 3.00 1 |__Chrome_IOThread
17:17:37 - 27714 2.00 0.00 0.00 2.00 1 |__CompositorTileW
이 1초 예제에는 CPU가 0%인 스레드가 많이 있었는데, 이를 제거했습니다. 100%는 CPU가 1개만 완전히 점유되었음을 의미하는 것으로 알고 있습니다. -I
CPU 수로 나누는 플래그가 있습니다 .