성능 마스터링: Sysstat 도구 모음 사용 실용 가이드

이 Sysstat 도구 모음 실용 가이드로 Linux 성능 모니터링의 잠재력을 최대한 발휘하세요. Sysstat을 설치 및 구성하여 과거 로그를 기록하는 방법을 배우고 강력한 `sar` 유틸리티 사용을 마스터하세요. 이 문서는 CPU 사용률, 메모리 압력, 디스크 I/O 포화 및 네트워크 활동을 분석하기 위한 실행 가능한 명령 예제를 제공하여 관리자가 성능 기준선을 설정하고 프로덕션 환경에서 시스템 병목 현상을 신속하게 진단하고 해결할 수 있도록 지원합니다.

34 조회수

성능 마스터하기: Sysstat 툴셋 활용 실전 가이드

성능 모니터링은 신뢰할 수 있는 Linux 시스템 관리의 기본입니다. 자원 활용도를 추적하는 강력한 도구가 없으면 병목 현상 식별이 추측에 의존하게 되어 비효율적인 문제 해결과 반응적인 확장을 초래합니다. sysstat 유틸리티 스위트는 모든 중요 자원 영역에 걸쳐 시스템 활동을 수집, 분석 및 보고하는 데 필수적인 Linux 네이티브 툴킷입니다.

이 가이드는 sysstat 툴셋에 대한 포괄적인 개요를 제공하며, 주로 시스템 활동 리포터(sar)에 중점을 둡니다. 설치, 이력 로깅을 위한 구성, 그리고 CPU, 메모리, 디스크 I/O 및 네트워크 사용량에 대한 실시간 및 사후 분석에서 성능 기준선을 설정하고 자원 경합을 정확히 파악하기 위한 실용적인 명령 예제를 다룰 것입니다.


1. Sysstat 설치 및 초기 구성

sysstat 패키지는 일반적으로 모든 주요 Linux 배포판의 표준 저장소에서 사용할 수 있습니다.

1.1 설치 명령

시스템에 적합한 패키지 관리자 명령을 사용하십시오:

Debian/Ubuntu:

sudo apt update
sudo apt install sysstat

RHEL/CentOS/Fedora:

sudo yum install sysstat
# 또는 최신 시스템에서는 dnf 사용
sudo dnf install sysstat

1.2 이력 데이터 수집 활성화

sar가 진정으로 유용하려면 이력 데이터를 수집해야 합니다. 기본적으로 설치 시 cron 작업 또는 systemd 타이머가 설정되는 경우가 많지만, 확인이 중요합니다.

최신 시스템에서는 sysstat 서비스가 활성 상태인지 확인하십시오:

sudo systemctl enable --now sysstat

구성 파일

데이터 수집 빈도는 구성 파일에 의해 제어되며, 일반적으로 /etc/default/sysstat (Debian/Ubuntu) 또는 /etc/sysconfig/sysstat (RHEL/CentOS)에 있습니다. ENABLED 또는 HISTORY 설정을 찾으십시오. ENABLED="true"로 설정하면 일일 데이터 수집이 보장됩니다.

팁: 기본적으로 sysstat 데이터 파일은 /var/log/sa/saXX (XX는 월의 일)와 같은 파일 이름으로 저장됩니다.

2. 핵심 유틸리티: 시스템 활동 리포터(sar)

sar는 통계를 보는 기본 인터페이스입니다. 실시간 데이터를 표시하거나 이전에 수집된 이력 데이터를 분석할 수 있습니다.

2.1 실시간 모니터링을 위한 기본 구문

기본 구문은 지정된 간격으로 특정 지표를 정의된 횟수만큼 보고하도록 설계되었습니다.

sar [options] [interval] [count]

예: 3초마다 10번 일반 CPU 통계를 보고하려면:

sar -u 3 10
옵션 설명
-u CPU 사용률 (기본값)
-r 메모리 및 페이징 통계
-d 블록 장치 활동 (디스크 I/O)
-n 네트워크 통계 (예: 인터페이스 통계는 -n DEV)
-q 실행 큐 및 로드 평균
-W 스와핑 활동 (페이징)
-A 모든 지표 (포괄적인 스냅샷에 유용)

3. 주요 성능 지표 및 실용적인 sar 예제

sar의 출력을 이해하려면 어떤 지표가 성능 상태나 스트레스를 나타내는지 알아야 합니다.

3.1 CPU 사용률 (sar -u)

CPU 사용률은 병목 현상을 찾기 위해 가장 먼저 살펴보는 곳입니다. 특정 범주에 걸쳐 높은 사용률은 워크로드의 특성을 나타냅니다.

sar -u 5 3
지표 설명 병목 현상 지표
%user 사용자 수준 프로세스 실행에 소요된 CPU 시간. 높으면 애플리케이션/서비스 포화를 나타냅니다.
%system 커널/시스템 작업 실행에 소요된 CPU 시간. 높으면 집중적인 시스템 호출 또는 드라이버 문제를 시사합니다.
%iowait I/O 작업(디스크/네트워크) 대기 중 유휴 CPU 시간. 높으면 I/O 병목 현상을 나타내며, CPU 부족이 아닙니다.
%idle 아무것도 기다리지 않고 보낸 CPU 시간 (사용 가능). 낮으면 (예: < 5%) CPU 포화를 시사합니다.

3.2 메모리 및 페이징 (sar -rsar -W)

메모리 통계는 소비량과 시스템이 스와핑 또는 페이징에 의존하는지 여부를 모두 보여줍니다.

메모리 사용률 (sar -r):

sar -r 1 5

kbavail (사용 가능한 메모리)에 집중하십시오. kbmemfree가 낮지만 kbcachedkbbuffers가 높으면, 커널의 캐싱 메커니즘에 의해 메모리가 효율적으로 사용되고 있는 것입니다.

스와핑 활동 (sar -W):

sar -W 1 5

pswpin/s (초당 스왑 인 페이지) 및 pswpout/s (초당 스왑 아웃 페이지)를 확인하십시오. 여기서 의미 있는 0이 아닌 값이 나타나면 시스템이 적극적으로 스와핑하고 있다는 의미이며, 메모리 압력(강력한 병목 현상)을 나타냅니다.

3.3 디스크 I/O 활동 (sar -d)

디스크 활동 모니터링은 데이터베이스 서버 또는 과도하게 사용되는 스토리지 시스템에 중요합니다.

sar -d 3 5

이 출력은 특정 장치(예: sda, vda)를 식별해야 합니다. 주요 지표는 다음과 같습니다:

  • tps: 초당 전송량 (높은 값은 높은 I/O 요청을 나타냅니다).
  • rd_sec/swr_sec/s: 초당 읽고/쓴 데이터 양.
  • %util: 장치가 요청을 처리하느라 바빴던 시간의 비율. %util이 100%에 가까워지면 스토리지 시스템이 포화 상태입니다.

3.4 네트워크 통계 (sar -n)

sar는 다양한 네트워크 계층에 걸친 활동을 보고할 수 있습니다. 가장 일반적인 확인은 인터페이스 활동(DEV)입니다.

sar -n DEV 5 1

이 명령은 각 네트워크 인터페이스에 대한 rxpk/s (초당 수신 패킷) 및 txkB/s (초당 전송 킬로바이트)와 같은 지표를 보여줍니다. 이를 사용하여 과도한 로드 또는 잠재적인 오류를 겪는 인터페이스를 식별하십시오.

4. 이력 분석 및 기준선 생성

sysstat의 진정한 힘은 장기간에 걸쳐 시스템 활동을 분석하는 능력에 있으며, 이는 성능 기준선(시스템에 정상인 상태)을 설정하는 데 필수적입니다.

4.1 이전 일자 분석

이전 일자에 수집된 데이터를 보려면 -f 플래그를 사용하여 일일 saXX 파일의 경로를 지정하십시오.

예: 현재 월의 10일자 CPU 통계를 보려면:

sar -u -f /var/log/sa/sa10

해당 일자의 특정 시간 범위에 대한 통계를 검토하려면 -s (시작 시간) 및 -e (종료 시간) 플래그를 추가하십시오 (24시간 형식 사용).

# 10일 14:00부터 16:30까지의 네트워크 통계 보기
sar -n DEV -f /var/log/sa/sa10 -s 14:00:00 -e 16:30:00

4.2 기준선 설정

  1. 데이터 수집: 일반적인 고부하 및 저부하 기간 동안 sysstat를 1-2주 동안 실행하십시오.
  2. 정상 상태 식별: 이력 데이터(sar -f)를 분석하여 평균 CPU 사용률(%user, %system), 최고 I/O 지연(%util), 평균 메모리 사용량을 결정하십시오.
  3. 임계값 정의: 기준선에 비해 지속적인 편차(예: %iowait가 두 배 증가하거나 %idle이 10분 이상 5% 미만으로 떨어지는 경우)는 조사가 필요한 성능 문제를 나타냅니다.

5. Sysstat 지원 도구

sar가 포괄적인 도구이지만, sysstat 스위트에는 집중적이고 상세한 보고서를 제공하는 특수 유틸리티가 포함되어 있습니다.

5.1 iostat (입력/출력 통계)

iostat는 장치 활용도에 특별히 초점을 맞춘 상세 지표를 제공하며, 스토리지 병목 현상을 진단할 때 특히 유용합니다.

# 2초마다 4번 디스크 통계 보고, 확장 통계(x) 포함
iostat -xd 2 4

주요 iostat 지표:

  • %util: I/O 요청이 장치로 발행되는 동안 CPU 시간이 소요된 비율 (포화의 중요한 지표).
  • await: 장치로 발행된 I/O 요청에 대한 평균 대기 시간 (밀리초 단위). 높은 await는 느린 스토리지 응답성을 나타냅니다.

5.2 mpstat (멀티 프로세서 통계)

CPU 스케줄링 문제 또는 코어 전반에 걸친 불균등한 워크로드 분배가 의심되는 경우, mpstatsar -u가 집계하는 것과는 달리 프로세서별 사용 통계를 제공합니다.

# 모든 CPU (A)에 대한 사용량을 2초마다 표시
mpstat -P ALL 2 1

이는 다른 코어가 유휴 상태인 동안 단일 코어를 포화시키는 단일 스레드 애플리케이션을 식별하거나 하이퍼스레딩 효율성을 진단하는 데 매우 중요합니다.

결론

sysstat 툴셋은 Linux 성능 튜닝 및 시스템 모니터링의 기본 요소입니다. sar 유틸리티를 마스터함으로써 시스템 관리자는 단순한 순간 모니터링을 넘어 자원 소비에 대한 심층적이고 이력적인 분석을 수행할 수 있습니다. CPU, 메모리, I/O 및 네트워크 활동을 모니터링하기 위해 sar를 정기적으로 사용하고, 견고한 성능 기준선을 설정하는 것은 반응적인 문제 해결을 사전 예방적인 시스템 관리로 전환하여 최적의 자원 활용과 시스템 안정성을 보장합니다.