Skip to content

vmstat

vmstat을 사용하여 프로세스, 메모리, 스왑, 입출력, 시스템 및 CPU 활동 상황에 대한 정보를
다음과 같이 한줄로 볼 수 있습니다:

procs memory swap io system cpu
r b swpd free buff cache si so bi bo in cs us sy id wa
0 0 5276 315000 130744 380184 1 1 2 24 14 50 1 1 47 0

첫번째 줄은 프로세스, 메모리, 스왑, 입출력, 시스템 및 CPU 관련 통계인 6 부분으로 나뉘어있습니다.
두번째 줄은 각 항목을 보다 상세하게 구분하여 특정 통계에 대한 데이터를 빠르게 감시할 수 있게 해줍니다.

프로세스 관련 항목:
r : CPU 접근 대기 중인 실행 가능 프로세스 수
b : 인터럽트 불가능한 수면 상태인 프로세스 수

메모리 관련 항목:
swpd : 사용된 가상 메모리 용량
free : 여유 메모리 용량
buff : 버퍼에 사용된 메모리 용량
cache : 페이지 캐시에 사용된 메모리 용량

스왑 관련 항목:
si : 디스크에서 스왑된 메모리 용량
so : 디스크로 스왑되어 나간 메모리 용량

입출력 관련 항목:
bi : 블록 장치로 보내진 블록
bo : 블록 장치에서 받아온 블록

시스템 관련 항목:
in : 일초당 인터럽트 수

% 인터 럽트 : 작동 중인 컴퓨터에 예기치 않은 문제가 발생한 경우 CPU(중앙처리장치:central processing unit) 자체가 하드웨어적으로 상태를 체크하여 변화에 대응하는 것을 말한다. 인터럽트가 발생하면 그 순간 운영체계 내의 제어프로그램에 있는 인터럽트 처리 루틴(routine)이 작동하여 응급사태를 해결하고 인터럽트가 생기기 이전의 상태로 복귀시킨다.

인터럽트가 발생하는 원인으로는 프로그램을 실행하는 도중 갑작스런 정전이나 컴퓨터 자체 내에서 기계적인 문제가 발생한 경우(기계검사 인터럽트), 오퍼레이터나 타이머에 의해 의도적으로 프로그램이 중단된 경우(외부 인터럽트), 입출력의 종료나 입출력의 오류에 의해 CPU의 기능이 요청되는 경우(입출력 인터럽트), 프로그램 실행 중 보호된 기억공간 내에 접근하거나 불법적인 명령 수행과 같은 프로그램의 문제가 발생한 경우(프로그램검사 인터럽트) 등이 있다.

프로그래밍 방식에는 인터럽트 방식과 폴링(polling) 방식이 있는데 인터럽트 방식을 사용하면 두 가지 이상의 프로세서(processor:처리장치)를 동시에 수행할 수 있고, 이상(異常) 현상을 쉽게 파악할 수 있어 훨씬 효율적이다.

cs : 일초당 문맥 전환 작업수

% 문맥 전화 작업 :다중 프로그래밍 시스템에서 여러 프로세스들이 스케줄 될 때 그 프로세스들의 문맥 정보가… 상태 플래그를 저장하고 인터럽트 처리 루틴으로 분기하는 작업

CPU 관련 항목:
us : CPU가 사용자 수준 코드를 실행한 시간 (백분율 단위)
sy : CPU가 시스템 수준 코드를 실행한 시간 (백분율 단위)
id : CPU가 아무런 작업을 수행하지 않은 시간 (백분율)
wa : 입출력 대기

vmstat 명령을 아무런 옵션 없이 입력한 경우 한 줄만 출력됩니다.
이 줄에는 시스템이 마지막으로 부팅된 이후 평균값을 보여줍니다.

그러나 시간이 지남에 따라 정보가 변경되므로 대부분의 시스템 관리자는 한줄로 나타난 자료에 의존하지 않습니다.
대신 vmstat는 정해진 간격에 자원 활용량 정보를 반복적으로 보여주는 장점이 있으며, 많은 시스템 관리자 분들은 이 점을 활용할 수 있습니다.
예를 들어 vmstat 1라고 입력하면 매초마다 활용 정보를 새 줄에 표시합니다. 만일 vmstat 1 10이라고 입력하시면 오직 10초 동안 매초마다 정보를 화면에 표시합니다.

실제 ftp를 이용하여 서버에 파일을 업로드 할경우 상태를 확인해 보겠습니다.

평상시
procs ———–memory———- —swap– —–io—- –system– —-cpu—-
r b swpd free buff cache si so bi bo in cs us sy id wa
0 0 0 4740 484 205436 0 0 0 0 0 183 3 0 96 0

ftp로 파일을 받을 경우
procs ———–memory———- —swap– —–io—- –system– —-cpu—-
r b swpd free buff cache si so bi bo in cs us sy id wa
1 3 0 4120 332 205848 0 0 0 13824 7910 571 6 58 10 26

프로세스가 처리되면서 인터럽트가 일어나고 블럭 디바이스에서 read/write가 발생하면서 버퍼가 사용되고 있다는 것을 확인할 수 있습니다.

Published inLinux