본문 바로가기

리눅스

vmstat 명령어

반응형

vmstat 명령어

vmstat은 리눅스와 유닉스 시스템에서 사용되는 명령어로, 시스템의 가상 메모리 사용 및 프로세스, I/O, CPU 사용 등과 관련된 정보를 보여줍니다. vmstat을 사용하여 서버의 상태를 파악할 수 있습니다.

 

다음은 vmstat 명령어를 사용하여 서버 상태를 파악하는 방법입니다.

1. vmstat 명령어를 입력하고 실행합니다.

vmstat

2. vmstat은 기본적으로 1초마다 업데이트되는 정보를 표시합니다. 다음과 같은 정보를 제공합니다.

  • 프로세스 및 메모리 관련 정보
    • 프로세스 개수 (r) : 실행 중인 프로세스의 수
    • 대기 중인 프로세스 개수 (b) : 메모리나 CPU 자원이 부족해 실행을 기다리고 있는 프로세스의 수
    • 스왑된 메모리의 개수 (swpd) : 스왑(Swap) 영역에 저장된 메모리의 크기
    • 가용한 메모리 (free) : 사용 가능한 물리적 메모리의 양
    • 버퍼 캐시에 사용된 메모리 (buff) : 디스크 I/O 작업을 위해 사용되는 버퍼 메모리의 양
    • 캐시에 사용된 메모리 (cache) : 파일 시스템의 캐시로 사용되는 메모리의 양
  • I/O 관련 정보
    • 입출력 요청 수 (bi/bo) : 블록 장치로의 입출력 요청 수
    • 블록 장치로 전송된 블록 수 (in/out) : 블록 장치로의 전송된 블록 수
  • CPU 관련 정보
    • 사용자 모드에서 CPU 사용 (us) : 사용자 프로세스가 사용하는 CPU 사용량
    • 시스템 모드에서 CPU 사용 (sy) : 시스템 프로세스가 사용하는 CPU 사용량
    • 대기 상태인 CPU (id) : CPU가 아무 작업도 수행하지 않는 상태의 시간
    • 하드웨어 인터럽트로 사용된 CPU (hi) : 하드웨어 인터럽트 처리로 사용된 CPU 시간
    • 소프트웨어 인터럽트로 사용된 CPU (si) : 소프트웨어 인터럽트 처리로 사용된 CPU 시간

vmstat은 지속적으로 업데이트되는 정보를 표시하기 때문에 필요한 만큼 실행하여 원하는 시간 동안의 상태를 확인할 수 있습니다. vmstat 명령어에는 다양한 옵션을 사용하여 출력을 제어하는 기능이 있으며, man vmstat 명령어를 통해 자세한 내용을 확인할 수 있습니다.

728x90

 

명령어 예시

$ vmstat -n 2 10
procs                      memory    swap          io     system         cpu
r  b  w   swpd   free   buff  cache  si  so    bi    bo   in    cs  us  sy  id
1  0  0   3928  55140  32432 111040   0   0     0     0   11     8   0   0   7
0  0  0   3928  55140  32432 111040   0   0     0     0  106     9   0   0 100
0  0  0   3928  55140  32432 111040   0   0     0     0  106    10   0   0 100

"vmstat -n 2 10" 명령어는 2초마다 10번의 샘플을 수집하여 출력하는 vmstat 명령어의 옵션입니다.

각 샘플에서 출력되는 필드의 설명은 다음과 같습니다.

 

  1. procs:
    • r: 실행 중인 프로세스의 수
    • b: 메모리나 CPU 자원이 부족해 실행을 기다리고 있는 프로세스의 수
  2. memory:
    • swpd: 스왑(Swap) 영역에 저장된 메모리의 크기
    • free: 사용 가능한 물리적 메모리의 양
    • buff: 디스크 I/O 작업을 위해 사용되는 버퍼 메모리의 양
    • cache: 파일 시스템의 캐시로 사용되는 메모리의 양
  3. swap:
    • si: 스왑 인으로 전송된 블록 수 (디스크로부터 스왑 영역으로 데이터를 읽은 횟수)
    • so: 스왑 아웃으로 전송된 블록 수 (스왑 영역에서 디스크로 데이터를 쓴 횟수)
  4. io:
    • bi: 블록 장치로의 입력 요청 수 (블록 장치로부터 데이터를 읽은 횟수)
    • bo: 블록 장치로의 출력 요청 수 (블록 장치로 데이터를 쓴 횟수)
  5. system:
    • in: 인터럽트 발생 횟수
    • cs: 컨텍스트 스위치 횟수 (프로세스 간의 전환 횟수)
  6. cpu:
    • us: 사용자 모드에서 CPU 사용량 (사용자 프로세스가 사용하는 CPU 시간)
    • sy: 시스템 모드에서 CPU 사용량 (시스템 프로세스가 사용하는 CPU 시간)
    • id: 대기 상태인 CPU 시간 (CPU가 아무 작업도 수행하지 않는 상태의 시간)
    • wa: 입출력 대기로 사용된 CPU 시간 (입출력 작업을 기다리는 동안 사용된 CPU 시간)
    • st: 가상화 환경에서 가상 CPU를 사용하기 위해 현재 실제 CPU에서 점유되는 시간 (가상 머신 환경에서만 해당)

위의 필드 설명은 vmstat -n 2 10 명령어의 출력에서 나타나는 정보를 나열한 것입니다. 2초마다 10번의 샘플을 수집하므로 각 필드는 총 10개의 값이 출력됩니다.

 

728x90
반응형