• 현재 메모리의 상태를 출력함.
  • 프로세스 정보 , 메모리 사용량 , 스왑 , IO 상태 및 CPU 활동 상황에 대한 정보를 보여준다.

vmstat 명령어 사용 형식

# 첫번째 방법
$ vmstat [옵션]

 # 두번째 방법  -> 예시) vmstat 5 5 (5초 간격으로 1줄씩 5번 생성)
$ vmstat [시간] [반복]

vmstat 명령어 출력 필드

$ vmstat
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 1  0      0 345316  39780 259932    0    0    13     5   53  108  1  0 99  0  0

1. procs 필드

  • r : CPU 접근 대기 중인 실행 가능한 프로세스 수
  • b : I/O 자원을 할당 받지 못해 블록된 프로세스의 수

2. memory 필드

  • swpd : 사용된 가상 메모리의 용량
  • free : 사용가능한 여유 메모리의 용량
  • buff : 버퍼에 사용된 메모리의 총량
  • cache : 페이지 캐시에 사용된 메모리의 용량

3. swap 필드

  • si : swap-in된 메모리의 양(kb)
  • so : swap-out된 메모리의 양(kb), swap-out가 지속적으로 발생한다면 메모리 부족을 의심

4. I/O 필드

  • bi : 블록 디바이스로부터 입력 블록수
  • bo : 블록 디바이스에 쓰기 블록수

5. system 필드

  • in : 초당 발생한 interrupts의 수
  • cs : 초당 발생한 context switchs(문맥교환)의 수

6. CPU 필드

  • us : CPU가 사용자 수준 코드를 실행한 시간 (단위: %)
  • sy : CPU가 시스템 수준 코드를 실행한 시간 (단위: %)
  • id : idle 시간
  • wa : I/O wait 시간

vmstat 명령어 옵션

1. vmstat -a 명령어 → buffer와 cache 대신 active 와 inactive 메모리 사용량에 대한 결과를 출력

  • inactive : 사용되지 않은 메모리의 양
  • active : 사용중인 메모리의 양
    $ vmstat -a
    procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
    r  b   swpd   free  inact     active   si   so    bi    bo   in   cs us sy id wa st
    0  0      0 333036 209580 310260    0    0    12     5   52  105  1  0 99  0  0

2.vmstat -d 명령어 → 디스크의 사용량을 출력

  • Reads (읽기)
    1. total : 성공한 모든 읽기 작업 개수
    2. merged : 하나의 I/O로 묶은 읽기 작업 수
    3. sectors : 성공적으로 읽은 섹터 수
    4. ms : 읽기 작업을 하는데 소요된 시간(밀리초)
  • Wrties (쓰기)
    1. total : 성공한 모든 쓰기 작업 개수
    2. merged : 하나의 I/O로 묽은 쓰기 작업 수
    3. sectors : 성공적으로 쓴 섹터 수
    4. ms : 쓰기 작업을 하는데 소요된 시간(밀리초)
  • I/O (입출력)
    1. cur : 현재 수행 중인 I/O 수
    2. sec : I/O를 수행하는데 소요된 시간(초)
      $ vmstat -d
      disk- ------------reads------------ ------------writes----------- -----IO------
      total merged sectors      ms  total merged sectors      ms    cur    sec
      ram0       0      0       0       0      0      0       0       0      0      0
      - 생략 -
      loop7      0      0       0       0      0      0       0       0      0      0
      sr0        0      0       0       0      0      0       0       0      0      0
      sda    10864   5487  541394   55154   6140  14695  166258   47768      0     29
      sdb      874    941    4334     785     24     17     200      47      0      0
      sdc     1889    891   12894    1390    146   7908   64308     847      0      1

vmstat 명령어를 crontab에 활용

  • 시스템의 프로세스 정보 , 메모리 사용량 , IO 상태 , CPU사용률 등의 정보를 vmstat 명령어를 사용하여 매일 23시 30분에 1초단위로 10회씩 check.log 파일에 누적 저장
    # 아래와 같이 등록한 후 출력된 결과 확인
    $ crontab -l
    30 23 * * * vmstat 1 10 >> /var/log/check.log

+ Recent posts