본문 바로가기
🌱 Computer Science/OS

[Linux 명령어] vmstat : 가상메모리 통계정보 확인(CPU/메모리/IO)

by 카프리썬_ 2020. 4. 19.
728x90
728x90

vmstat (virtual memory stat)

현재 메모의 상태 출력

시스템 전반적인 값(CPU/메모리/IO)을 top보다 요약된 정보로 쉽게 확인할 수 있음

 

옵션

-a (active) buffer와 cache대신 active/inactivate로 메모리사용량 결과 출력
-t (timestamp) 날짜 + 시간을 출력
-w  (wide) 출력결과의 너비를 맞춤
-d  (disk) 디스크 상태조회
[간격] [반복횟수] vmstat 2 5 : 2초간격으로 5번 출력

 

해석

1초 간격으로 출력

procs 필드

r (run) 현재 실행중인 프로세스 중  (cpu에 접근대기중인 프로세스)
b (block) io자원을 할당받지 못해서 블록된 프로세스 수 

memory필드

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

swap 필드

si (swap-in) swap-in 된 메모리양
so (swap-out) swap-out 된 메모리양 (지속적으로 발생하면 메모리 부족)

io 필드

bi (block input) 블록 디바이스로부터 입력된 블록수
bo (block output) 블록 디바이스로부터 쓰기된 블록수

system 필드

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

CPU필드 

us (user) CPU가 user level의 코드를 실행한 시간(단위%) -> 사용자 영역에서 사용하는 CPU의 비율
us의 CPU가 높을 경우 : OS명령어로 알기 어렵다.
sy (system) CPU가 system level의 코드를 실행한 시간(단위%) -> 시스템콜 호출에 의해 사용되는 CPU비율
sy의 CPU가 높을 경우 : truss 명령어로 어떤 시스템 콜이 수행중인지 확인가능
id (idel) 사용가능한 CPU의 시간율 id = 100 - (us+sy)
wa (wait) 디스크 혹은 기타 io작업으로 인해 CPU가 대기하는 시간비율

 

예시

1. [간격]으로 [횟수] 만큼 출력 : vmstat 2 5

2초 간격으로 5개만 출력

2. active/inactivate로 표시 : vmstat -a

active : 사용 중인 메모리양

inact : 사용되지 않은 메모리 양

 

3. 시간까지 표시해서 출력 : vmstat -t

4. 디스크 사용량 : vmstat -d 

디스크명 : xvda

reads 필드 / wirtes 필드

total 성공한 모든 읽기/쓰기 작업개수
merged  하나의 io로 묶은 읽기/쓰기 작업수
sectors 성공적으로 읽은/쓴  섹터수
ms 읽기/쓰기 작업을 하는데 소요된 시간(밀리초)

io필드

cur 현재 수행중인 io수
sec io를 수행하는데 소요된 시간(초)

 

3) mpstat

CPU time을 CPU별로 측정
CPU별로 불균형한 상태 확인

4) pidstat

TOP이랑 비슷하지만 지속적으로 변화하는 상황

5) sar (Systemc Activity Reprot)

 

 

+kill 명령어

프로세스 종료 명령어

사용포맷 : kill [옵션명 or 옵션번호] PID

그 중에서

옵션번호 9 : 프로세스 죽이기 (SIGKILL)

옵션번호 15 : 소프트웨어 안전종료(SIGTERM)

ex) 

kill -9 PID : 프로세스 번호로 강제종료 --> 작업중인 모든 데이터를 저장하지 않고 종료

kill -15 PID : 프로세스 번호로 안전종료 --> 메모리상에 있는 데이터 저장한 후 종료

 

 

https://waspro.tistory.com/155

 

[ETC] vmstat 모니터링 및 활용가이드

본 포스팅은 vmstat을 통한 시스템 모니터링 방법을 가이드하겠습니다. vmstat는 Unix에서 가장 기본적인 시스템 모니터링 명령어이자, 해당 시스템(장비 전체)의 이상 유무를 판단할 수 있는 중요한 명령어입니다..

waspro.tistory.com

https://bigsun84.tistory.com/355

 

[Linux] kill 명령어 옵션 정리

kill : 프로세스에 특정한 signal을 보내는 명령어 일반적으로 종료되지 않는 프로세스를 종료 시킬 때 많이 사용한다. ### 옵션 -l : signal 의 종류를 출력한다. $ kill -l 1) SIGHUP 2) SIGINT 3) SIGQUIT 4) S..

bigsun84.tistory.com

https://b.luavis.kr/server/linux-performance-analysis

 

Luavis' Dev Story - 리눅스 서버 60초안에 상황파악하기

 

b.luavis.kr

 

728x90
반응형