리눅스(CentOS)에서 CPU 코어별 사용률 확인하기

CentOS 에서 CPU 코어별 사용량을 확인하는 방법에 대한 포스트 입니다.

회사에서 사용하는 분석 서버는 다수의 사용자가 작업을 수행하고 있습니다. 사용을 유연하게 하고자 계정별 물리적인 제한을 두지 않고 파이썬 스크립트 내에서 scikit-learnn_jobs 파라미터를 조절해 가며 사용하고 있습니다.

  • ex1) 전체 코어 수 = 72개 → 8명 사용 : n_jobs = 9 설정
  • ex2) 전체 코어 수 = 72개 → 3명 사용 : n_jobs = 24 설정

동시 접속자 수가 많지 않거나 특정 이슈로 빠른 처리가 필요한 경우 리소스 몰아주기를 하는데, 가끔 확인되지 않은 작업이 있을 수 있기에 반드시 사전 확인을 해야 합니다.

  • ex) 대용량 학습, 배치 작업 등

리눅스에서 기본적으로 제공하는 top 명령어로 시스템 사용률을 확인할 수 있으나, 코어별 사용량 파악이 필요한 경우에는 아래 설명되는 mpstat를 활용하는게 좋습니다.

sysstat 패키지

mpstat는 리눅스 패키지 sysstat에서 제공하는 명령어로, 사용을 위해서는 sysstat 패키지부터 설치해야 합니다.

  • sysstat 패키지 설치하기
yum install sysstat

mpstat

sysstat 패키지 설치 이후에는 아래와 같이 명령어를 통해 사용 가능합니다.

  • 전체 사용률 요약 정보 확인
mpstat 

  • 코어별 사용률 확인
mpstat -P ALL

출력창 설명

출력창에 표현된 내용 중 의미있게 봐야하는 부분은 아래와 같습니다.

  • CPU : CPU 코어 번호(0번부터 시작하며, all은 전체 사용률 항목을 의미)
  • %usr : 사용자(어플리케이션)에 의한 CPU 점유율
  • %sys : 시스템(커널)에 의한 CPU 점유율
  • %idle : 유휴 비율

만약 출력 결과를 실시간(준실시간)으로 보고 싶다면 아래 명령어를 활용하면 됩니다.

  • 코어별 사용량 확인 : 3초마다 갱신
mpstat -P ALL 3

위에서 설명드린 3초간 자동 갱신되는 스크립트의 동작은 `update`가 아닌 `re-run`으로 일어납니다.

따라서, 아래 사진과 같이 출력창의 페이지가 지속적으로 증가할 수 있습니다.

출처

[1] [리눅스 명령어]CentOS : man mpstat
[2] mpstat - 리눅스에서 CPU 코어별 사용률 확인하기