Linux 시스템 성능 분석 - vmstat 및 sar 명령어 활용

(1). vmstat

vmstat은 Linux/Unix에서 자주 사용하는 모니터링 도구로, 특정 시간 간격 동안의 서버 전반적인 상태를 보여줍니다. 이 명령어는 CPU 사용률, 메모리(MEM), 스왑(Swap) 상태, I/O 읽기/쓰기 정보 등을 제공합니다.

[user@server ~]# 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 3709568   2108 156248   0    0     1     0   20   18  0  0 100  0  0

설명:

  • procs (프로세스):

  • r: 실행 중이거나 실행 대기 상태인 프로세스 수입니다. 이 값이 CPU 코어 수보다 클 경우, CPU 병목 현상이 발생할 수 있습니다.

  • b: IO 작업을 대기 중인 비중단 수면 상태의 프로세스 수입니다.

  • memory (메모리):

  • swpd: 가상 메모리 사용량(KB 단위). 이 값이 높으면 물리 메모리가 부족할 가능성이 있습니다.

  • free: 사용 가능한 물리 메모리 크기(KB 단위).

  • buff: 블록 디바이스 캐시에 할당된 메모리 양(KB 단위).

  • cache: 파일 캐시에 할당된 메모리 크기(KB 단위).

  • swap (스왑):

  • si: 디스크로부터 스왑 영역으로 읽어온 데이터량(KB/초).

  • so: 스왑 영역에서 디스크로 쓰여진 데이터량(KB/초).

  • io:

  • bi: 블록 디바이스로부터 초당 읽은 블록 수.

  • bo: 블록 디바이스에 초당 쓴 블록 수.

  • system:

  • in: 초당 인터럽트 횟수(타이머 인터럽트 포함).

  • cs: 초당 컨텍스트 스위칭 횟수.

  • cpu:

  • us: 사용자 모드에서 소비한 CPU 시간(%).

  • sy: 시스템 모드에서 소비한 CPU 시간(%).

  • id: 유휴 상태인 CPU 시간(%).

  • wa: IO 대기 상태인 CPU 시간(%).

  • st: 가상 머신에서 점유한 CPU 시간(%).

예제: 1초마다 10번 출력하기

[user@server ~]# vmstat 1 10

(2). sar

sar 명령어는 sysstat 패키지에서 제공되며, 시스템 활동 정보를 주기적으로 기록하고 분석할 수 있습니다. 기본적으로 /var/log/sa 디렉토리에 저장됩니다.

[user@server ~]# yum -y install sysstat

사용법:

  • -u: CPU 사용 상태 표시.
  • -n DEV: 네트워크 인터페이스 통계 표시.
  • -d: 디스크 활동 상태 표시.
  • -r: 메모리 사용량 표시.

예제: CPU 사용량 확인 후 로그 파일에 저장

[user@server ~]# sar -u 2 5 -o cpu_log.sar

로그 확인:

[user@server ~]# sar -u -f cpu_log.sar

특정 시간대의 CPU 상태 확인:

[user@server ~]# sar -s 12:00:00 -e 12:20:00 -f /var/log/sa/sa04

태그: linux performance-monitoring sysstat

6월 17일 18:29에 게시됨