참고:
- 이 자습서는 Oracle에서 제공하는 무료 실습 환경에서 사용할 수 있습니다.
- Oracle Cloud Infrastructure 인증서, 테넌시 및 구획에 대한 예제 값이 사용됩니다. 랩을 완료한 후에는 이러한 값을 클라우드 환경과 관련된 값으로 대체하십시오.
Oracle Linux에서 시스템 리소스 모니터링
소개
이 사용지침서에서는 Oracle Linux vmstat
, mpstat
및 top
를 사용하여 시스템 리소스 사용을 모니터링합니다. 시스템 재교육의 사용 모니터링은 시스템 성능에 부정적인 영향을 줄 수 있는 문제를 감지하는 데 유용합니다.
배경
Oracle Linux는 시스템 리소스 사용을 모니터링 및 분석하는 동시에 여러 프로세스 및 관련 스레드에서 성능 문제를 진단하는 추적 도구를 제공합니다.
목표
vmstat
명령 탐색mpstat
명령 탐색top
명령 탐색vmstat
및mpstat
,top
사용vmstat
,mpstat
및top
에서 명령 출력 조사
필요 사항
Oracle Linux 8 이상이 설치된 클라이언트 시스템입니다.
주: 무료 실습 환경을 사용할 때는 연결 및 기타 사용 지침은 Oracle Linux Lab Basics을 참조하십시오.
vmstat
명령 옵션 탐색 및 사용
vmstat
는 가상 메모리의 양과 사용 가능한 양을 보여줍니다. 이 명령은 페이징 작업도 표시합니다. 시스템에서 페이지 인과 페이지 아웃을 관찰할 수 있습니다.
이미지에 표시된 것처럼 작업 표시줄에 있는 "단계 숨기기 및 "전체 화면" 컨트롤을 사용하여 보기 영역을 최대화하는 것이 좋습니다.
vmstat
에 대한 개요는 아래 비디오를 참조하십시오.
-
vmstat
명령을 옵션 없이 실행합니다.vmstat
이 명령은 단일 보고서를 생성합니다. 출력은
procs
,memory
,swap
,io
,system
및cpu
의 여섯 섹션으로 구분됩니다.-
처음 두 열은 프로세스에 대한 정보를 제공합니다.
-
r
은 대기 상태인 프로세스 수입니다. 이러한 프로세스는 Idle 상태이며 실행 대기 중인 프로세스입니다. -
b
는 휴지 모드에 있고 마지막 업데이트 이후 중단된 프로세스 수입니다.
-
-
다음 네 개의 열은 메모리에 대한 정보를 제공합니다.
-
swpd
는 사용된 가상 메모리 크기입니다. -
free
은 유휴 메모리 크기입니다. -
buff
은 버퍼로 사용되는 메모리 양입니다. -
cache
는 캐시로 사용되는 메모리의 양입니다.
-
-
다음 두 열은 스왑에 대한 정보를 제공합니다.
-
si
은 디스크에서 교체된 메모리 양(초당)입니다. -
so
은 디스크로 교체된 메모리 양입니다(초당).0이 아닌
si
및so
숫자는 물리적 메모리가 부족하여 커널에서 메모리를 디스크로 스왑하도록 합니다.
-
-
다음 두 열은 입력/출력을 보고합니다.
-
bi
는 블록 장치에서 수신된 초당 블록 수입니다. -
bo
는 블록 장치로 전송된 초당 블록 수입니다.
-
-
다음 두 열은 다음 시스템 정보를 제공합니다.
-
in
는 시계를 포함하여 초당 인터럽트 수입니다. -
cs
는 초당 컨텍스트 전환 수입니다.
-
-
마지막 다섯 개 열은 총 CPU 시간의 백분율을 제공합니다.
-
us
은 사용자 프로세스에 소비되는 CPU 주기의 백분율입니다. -
sy
은 시스템(커널) 프로세스에 소비한 CPU 주기의 백분율입니다. -
id
은 유휴 상태로 소비된 CPU 주기의 백분율입니다. -
wa
은 I/O를 기다리는 데 소비한 CPU 주기의 백분율입니다. -
st
는 가상 시스템에서 도난된 CPU 주기의 백분율입니다.
-
-
-
vmstat 1
명령(소문자l
이 아닌 숫자 1)을 실행하여 초당 연속 보고서를 봅니다.vmstat 1
- 종료하려면 Ctrl+C를 누릅니다.
-
vmstat 7 4
명령을 실행하여 7초 간격으로 4개의 보고서를 실행합니다.vmstat 7 4
count 옵션은
vmstat
에 실행할 보고서 수(4)를 알려주고, 지연 옵션(7)은 각 보고서 간의 시간 간격입니다. -
vmstat -s
명령을 실행하여 다양한 이벤트 카운터 및 메모리 통계 테이블을 표시합니다.vmstat -s
-
vmstat -a
명령을 실행하여 활성 및 비활성 메모리를 표시합니다.vmstat -a
-a
옵션은 출력의memory
섹션에active
및 비활성(inact
) 메모리 양을 표시합니다. -
vmstat -f
명령을 실행하여 마지막 부트 이후 포크 수를 표시합니다.vmstat -f
-
vmstat -t
명령을 실행하여 출력에 시간 기록을 추가합니다.vmstat -t
-
vmstat -d
명령을 실행하여 시스템의 디스크 사용량 통계를 표시합니다.vmstat -d
-
vmstat -p sda1
명령을 실행하여 특정 디스크 분할 영역에 대한 보고서를 만듭니다.vmstat -p sda1
출력에는 분할 영역에 대한 요약(번호 또는 읽기 및 쓰기)이 표시됩니다.
mpstat
명령 옵션 탐색 및 사용
mpstat
명령은 시스템의 모든 논리적 CPU에 대한 성능 통계를 수집하고 표시하는 데 사용됩니다. 프로세스가 CPU를 사용하고 있는 경우 다른 요청을 처리할 수 없습니다. 이러한 다른 프로세스는 CPU가 확보될 때까지 기다려야 합니다.
mpstat
에 대한 개요는 아래 비디오를 참조하십시오.
-
mpstat
명령을 옵션 없이 실행합니다.mpstat
첫번째 행에는 시스템의 Linux 커널 버전, 호스트 이름, 현재 날짜, 구조 및 CPU 수가 표시됩니다.
다음 행의 첫번째 열은 시간 기록을 제공하며 나머지 열은 다음과 같이 정의됩니다.
-
CPU
은0
또는all
키워드로 지정된 프로세서로, 통계가 모든 프로세서 사이에서 평균으로 계산됨을 나타냅니다. -
%user
은 사용자 레벨에서 응용 프로그램을 실행하는 동안 사용된 CPU의 백분율입니다. -
%nice
은 우선 순위가 높은 사용자 레벨에서 실행하는 동안 사용된 CPU의 백분율입니다. -
%sys
는 시스템(커널) 레벨에서 실행하는 동안 사용된 CPU의 백분율입니다.mpstat
명령에는 하드웨어 및 소프트웨어 인터럽트를 처리하는 데 소요되는 시간이 포함되지 않습니다. -
%iowait
은 시스템에 미해결 디스크 I/O 요청이 있는 동안 CPU가 유휴 상태였던 시간의 백분율입니다. -
%irq
은 하드웨어 인터럽트를 서비스하는 CPU에서 소비한 시간의 백분율입니다. -
%soft
은 CPU에서 소프트웨어 인터럽트를 제공하는 데 걸린 시간의 백분율입니다. -
%steal
는 하이퍼바이저가 다른 가상 프로세서를 서비스하는 동안 가상 CPU 또는 CPU의 비자발적 대기에 소비한 시간의 백분율입니다. -
%guest
은 CPU에서 가상 프로세서를 실행하는 데 소비한 시간의 백분율입니다. -
%gnice
는 CPU에서 가격이 책정된 게스트를 실행하는 데 소비한 시간의 백분율입니다. -
%idle
는 CPU가 유휴 상태였고 시스템에 미해결 디스크 I/O 요청이 없는 시간의 백분율입니다.
-
-
mpstat 2 5
명령을 실행하여 2초마다 CPU 작업을 확인하고 모든 CPU에 대해 총 5개 보고서를 작성합니다.mpstat 2 5
출력은 한 행의 정보를 총 5회 인쇄하고 평균도 인쇄합니다.
-
mpstat -P ALL
명령을 실행하여 각 CPU에 대한 CPU 사용량을 보고합니다.mpstat -P ALL
이 출력은 모든 CPU 및 각 CPU에 대한 단일 작업 행을 인쇄합니다. 주:
mpstat
는 지정된 기간에 대한 평균 CPU 활용률도 인쇄합니다. -
mpstat -P ALL 2 5
명령을 실행하여 CPU의 2초마다 CPU 작업을 확인합니다.mpstat -P ALL 2 5
이 출력은 2초 간격으로 각 CPU에 대한 CPU 활용률 통계를 5회 출력합니다. 주:
mpstat
는 지정된 기간에 대한 평균 CPU 활용률도 인쇄합니다. -
mpstat -A
명령을 실행하여 동일한 명령 출력에서 CPU 사용률 및 인터럽트 통계를 함께 인쇄합니다.mpstat -A
top
명령 탐색
top
명령은 프로세서 작업을 실시간으로 지속적으로 살펴봅니다. top
는 시스템에서 가장 CPU를 많이 사용하는 프로세스 또는 작업 목록을 표시하고 프로세스 조작을 위한 제한된 대화식 인터페이스를 제공합니다.
top
에 대한 개요는 아래 비디오를 참조하십시오.
-
CPU 작업의 특정 시점 뷰에 대한 옵션 없이
top
명령을 실행합니다.top
출력은 기본적으로 3초마다 새로 고쳐지고 두 개의 기본 섹션으로 구분됩니다.
위쪽 섹션에는 최근 1, 5, 15분 동안 로드 평균, 실행 및 일시 정지 작업 수, 전체 CPU 및 메모리 사용량과 같은 일반 정보가 표시됩니다.
-
다음 명령을 사용하여 상단 섹션에 표시된 출력을 켜거나 끕니다.
-
로드 평균 및 가동 시간을 해제 및 해제하려면 소문자
l
(숫자1
아님)을 입력합니다. -
m
를 입력하여 메모리 및 스왑 사용을 해제하고 끕니다. -
t
를 입력하여 메모리 및 스왑 사용을 해제하고 끕니다.
-
아래쪽 섹션에는 프로세스 ID 번호(PID) 및 프로세스를 소유한 사용자와 함께 CPU 사용량을 기준으로 정렬된 프로세스 목록이 표시됩니다. 또한 출력에 프로세스에서 사용하는 실행 시간과 메모리가 표시됩니다.
다음은 하단 섹션에 있는 열에 대한 설명입니다.
-
PID
는 작업의 고유 프로세스 ID입니다. -
USER
는 작업 소유자의 유효 사용자 이름입니다. -
PR
은 작업의 실제 우선순위입니다. -
NI
는 사용자 공간에서 작업의 nice 값입니다.값이 음수이면 우선 순위가 높고, 값이 양수이면 우선 순위가 낮음을 의미합니다. 값이 0이면 작업 우선순위가 실행될 때 영향을 주지 않습니다.
-
VIRT
은 작업에 사용되는 총 가상 메모리 양입니다.이 값에는 모든 코드, 데이터 및 공유 라이브러리와 교체된 페이지가 포함됩니다.
-
RES
는 작업이 사용 중인 비스왑 물리적 메모리 또는 상주 크기입니다. -
SHR
은 작업이 사용 중인 공유 메모리의 양입니다.이 메모리는 다른 프로세스와 공유될 수 있습니다.
-
S
은 태스크 상태입니다. 다음 다섯 가지 상태가 있습니다.-
D
무정전 슬립 -
R
실행 중 -
S
일시 정지 -
T
추적 또는 중지 -
Z
Zombie
-
-
%CPU
는 마지막 화면 업데이트 이후 경과된 CPU 시간 또는 CPU 사용량의 작업 공유로, 총 CPU 시간의 백분율로 표시됩니다. -
%MEM
은 작업의 현재 사용 가능한 물리적 메모리 또는 메모리 사용량 공유입니다. -
TIME+
은 작업이 시작된 이후 사용된 총 CPU 시간입니다. -
COMMAND
는 작업을 시작하는 데 사용되는 명령줄 또는 프로그램 이름입니다.
-
-
Crtl+C를 입력하여
top
를 종료합니다.
vmstat
, mpstat
및 top
의 명령 출력 비교
이 연습에서는 다양한 stress
테스트를 실행하여 실습 시스템에서 다양한 로드를 에뮬레이트한 다음 vmstat
, mpstat
및 top
명령을 사용하여 다양한 유형의 로드에 대해 보고한 내용을 확인합니다.
테스트를 백그라운드 프로세스로 실행하지만 비교를 위해 추가 터미널 창을 여는 것이 좋습니다.
각 추가 window를 실행하려면 ssh
에서 oracle@<IP_ADDRESS_OF_COMPUTE_INSTANCE>
으로 lab instance에 로그인해야 합니다. 여기서 <IP_ADDRESS_OF_COMPUTE_INSTANCE>
은 Oracle Cloud 콘솔에서 복사된 IP 주소입니다.
- 로그인한 후
sudo -i
명령을 사용하여 루트 사용자로 전환합니다.
-
stress
도구를 설치합니다.-
dnf repolist
명령을 사용하여ol8_developer_EPEL
저장소의 상태를 확인합니다.dnf repolist ol8_developer_EPEL
-
상태가
enabled
인 경우stress
도구 패키지 설치를 진행합니다. 그렇지 않으면 계속해서 저장소를 "사용으로 설정"합니다. -
dnf conifg-manager
명령을 사용하여 상태가disabled
인 경우 저장소를 사용으로 설정합니다.dnf config-manager --enable ol8_developer_EPEL
-
-
-
dnf install
명령을 실행하여stress
도구 패키지를 설치합니다.dnf install stress -y
-
stress --dry-run
명령을 실행하여 명령 구문의 예를 확인합니다. 예제의 옵션과 나열된 다른 명령 옵션을 잠시 검토합니다.stress --dry-run
-
vmstat 4 4
및mpstat 4 4
명령을 실행하여 시스템 작업의 Baseline을 확인합니다. 특히 사용자 및 시스템(커널) 프로세스에 할당된 CPU 백분율을 확인합니다. 이 열은0
에 가까워야 합니다. 또한 사용 가능한 메모리 양을 기록합니다.vmstat 4 4 mpstat 4 4
-
stress --cpu
명령을 실행하여 계산 바인딩 프로그램을 에뮬레이트하고 백그라운드에서 명령을 실행합니다. 이 명령은 8개의 컴퓨팅 기반 프로세스를 생성합니다.stress --cpu 8 &
-
프롬프트로 돌아가려면 return을 누릅니다.
-
ps -ef
명령을 실행하여 실행 중인stress
프로세스를 확인합니다. 출력을grep stress
에 연결합니다.ps -ef | grep stress
-
-
vmstat 4 10
명령을 실행하고 CPU 사용률과 연관된 열에 보고된 값을 기록해 둡니다.vmstat 4 10
잠시 후
us
열 아래에stress
에 의해 생성된 로드가 반영된 백분율이 표시되어야 합니다. -
mpstat 4 10
명령을 실행하여 모든 CPU의 사용률을 평가합니다.mpstat 4 10
-
mpstat -P ALL 4 10
명령을 실행하여 각 CPU의 사용률을 평가합니다.mpstat -P ALL 4 10
-
top
명령을 실행하여stress
프로세스를 통해 CPU 사용률을 검사합니다.top
몇 분 후
stress
프로세스가 가장 높은 우선 순위로 실행되고 있음을 알 수 있습니다. Ctrl+C를 입력하여top
를 종료합니다. -
pkill
명령을 실행하여stress
프로세스를 종료합니다.pkill stress
-
vmstat 4 4
및mpstat 4 4
명령을 재실행하여 시스템 작업의 Baseline을 확인합니다. -
새
stress
명령을 실행하고--vm
및--vm-bytes
옵션을 추가하여 시스템에서 메모리 작업을 생성합니다.stress --cpu 8 --vm 8 --vm-bytes 512M &
-
vmstat 4 10
,mpstat -P ALL 4 10
및top
를 실행하여 CPU 및 메모리 작업을 평가합니다.vmstat 4 10 mpstat -P ALL 4 10 top
- Crtl+C를 입력하여
top
를 종료합니다.
- Crtl+C를 입력하여
-
pkill
명령을 사용하여stress
프로세스를 종료합니다.pkill stress
-
vmstat 4 4
및mpstat 4 4
명령을 재실행하여 시스템 작업의 Baseline을 확인합니다. -
새
stress
명령을 실행하고 시스템에서 입력/출력 작업을 생성하는--io
옵션을 추가합니다.stress --cpu 8 --vm 8 --vm-bytes 512M --io 8 &
-
vmstat 4 10
,mpstat -P ALL 4 10
및top
를 실행하여 CPU, 메모리, 입력/출력 작업을 평가합니다.vmstat 4 10 mpstat -P ALL 4 10 top
-
Crtl+C를 입력하여
top
를 종료합니다. -
pkill
를 사용하여stress
를 종료합니다.
-
추가 학습 자원
docs.oracle.com/learn에서 다른 실습을 찾아보거나 Oracle Learning YouTube channel에서 무료 학습 콘텐츠에 액세스할 수 있습니다. 또한 education.oracle.com/learning-explorer를 방문하여 Oracle Learning Explorer로 변경하십시오.
제품 설명서는 Oracle Help Center를 참조하십시오.
Monitor system resources on Oracle Linux
F49873-04
May 2022
Copyright © 2021, Oracle and/or its affiliates.