Oracle_Unix_Server

🔍 OSW(Oracle System Watcher)란? 숨겨진 성능 모니터링의 보석! 💎

kerasi 2025. 6. 2. 16:10
728x90
반응형

🔍 OSW(Oracle System Watcher)란? 숨겨진 성능 모니터링의 보석! 💎

안녕하세요! 오라클 성능 튜닝의 세계로 오신 것을 환영합니다! 👋

오라클 데이터베이스를 운영하다 보면 "어? 갑자기 왜 느려졌지?" 하는 상황을 자주 마주하죠. 그럴 때마다 "그때 시스템이 어떤 상태였는지 알 수 있다면..." 하고 아쉬워한 적 있으신가요? 😅

바로 그런 고민을 해결해주는 게 **OSW(Oracle System Watcher)**입니다! 마치 시스템의 블랙박스 같은 역할을 하는 이 놀라운 도구에 대해 재미있게 알아보겠습니다! 🚀

OSW가 뭔가요? 🤔

**Oracle System Watcher(OSW)**는 오라클에서 제공하는 무료 시스템 모니터링 도구입니다!

쉽게 말하면...

  • 자동차의 블랙박스 같은 역할 📹
  • 의사의 심전도 모니터 같은 역할 💓
  • 보안카메라 같은 역할 📱

시스템에서 일어나는 모든 일들을 조용히 기록해두었다가, 문제가 생겼을 때 "그때 뭔 일이 있었나?" 하고 찾아볼 수 있게 해주는 똑똑한 도구예요!

OSW의 마법 같은 기능들 ✨

1. 24시간 자동 감시 👁️‍🗨️

  • 잠들지 않는 파수꾼처럼 계속 모니터링
  • CPU, 메모리, I/O, 네트워크 모든 것을 추적
  • 문제 발생 순간도 놓치지 않음!

2. 시간대별 상세 분석 📈

오전 9시: CPU 사용률 30% (정상)
오전 10시: CPU 사용률 95% (문제 발생!)
오전 11시: CPU 사용률 25% (정상 복구)

3. 다양한 시스템 정보 수집 📊

  • CPU: 사용률, 대기시간, 컨텍스트 스위치
  • 메모리: 사용량, 페이지 스왑, 버퍼 상태
  • 디스크: I/O 대기, 처리량, 응답시간
  • 네트워크: 패킷 전송률, 에러율
  • 프로세스: 개별 프로세스 리소스 사용량

OSW 설치하기 - 생각보다 쉬워요! 🛠️

1단계: OSW 다운로드

# Oracle MOS(My Oracle Support)에서 다운로드
# 또는 이미 설치된 Oracle Grid Infrastructure에 포함
cd $ORACLE_HOME/oswbb

2단계: 설치 및 시작 (정말 간단!)

# OSW 시작 (기본 설정: 30초 간격, 48시간 보관)
./startOSWbb.sh

# 사용자 정의 설정
./startOSWbb.sh 60 72  # 60초 간격, 72시간 보관

3단계: 확인

# OSW가 실행 중인지 확인
ps -ef | grep OSW

# 로그 파일 확인
ls -la archive/

이게 끝이에요! 😎

실무에서 OSW 활용하기 - 진짜 케이스들! 💼

케이스 1: "오전 10시마다 느려져요!" 😰

상황: 매일 오전 10시만 되면 시스템이 느려진다는 사용자 불만

OSW로 분석:

# 오전 10시 전후 CPU 상태 확인
grep "10:0" archive/*/oswcpu.dat

# 결과: 오전 10시에 백업 스크립트가 실행되면서 CPU 100% 점유!
# 해결: 백업 스케줄을 새벽 시간으로 변경

케이스 2: "갑자기 ORA-00600 에러가!" 💥

상황: 설명할 수 없는 오라클 에러 발생

OSW로 분석:

# 에러 발생 시점 메모리 상태 확인
grep "14:30" archive/*/oswmeminfo.dat

# 결과: 메모리 부족으로 시스템 스왑 발생!
# 해결: SGA 크기 조정 및 메모리 증설

케이스 3: "디스크가 느린 것 같아요" 🐌

상황: 쿼리 응답시간이 평소보다 10배 느림

OSW로 분석:

# I/O 대기시간 확인
grep "svctm\|await" archive/*/oswiostat.dat

# 결과: 특정 디스크의 응답시간이 200ms! (정상: 5ms)
# 해결: 디스크 하드웨어 점검 및 교체

OSW 고급 활용법 - 진짜 고수되기! 🎓

1. 자동 분석 스크립트 만들기

#!/bin/bash
# daily_osw_check.sh

DATE=$(date +%Y%m%d)
LOG="/var/log/osw_daily_${DATE}.log"

echo "=== OSW Daily Report $(date) ===" > $LOG

# CPU 평균 사용률
echo "Average CPU Usage:" >> $LOG
grep "$(date +%d)" archive/*/oswcpu.dat | awk '{sum+=$3; count++} END {print sum/count "%"}' >> $LOG

# 메모리 사용량
echo "Memory Usage:" >> $LOG
tail -1 archive/*/oswmeminfo.dat >> $LOG

# 디스크 I/O 현황
echo "Disk I/O Status:" >> $LOG
tail -1 archive/*/oswiostat.dat >> $LOG

# 메일 발송
mail -s "OSW Daily Report" dba@company.com < $LOG

2. 성능 임계값 알림 설정

#!/bin/bash
# osw_alert.sh

# CPU 사용률 90% 이상 시 알림
CPU_USAGE=$(tail -1 archive/*/oswcpu.dat | awk '{print $3}')
if [ $(echo "$CPU_USAGE > 90" | bc) -eq 1 ]; then
    echo "ALERT: CPU usage is ${CPU_USAGE}%" | mail -s "High CPU Alert" admin@company.com
fi

# 메모리 사용률 95% 이상 시 알림
MEM_USAGE=$(tail -1 archive/*/oswmeminfo.dat | awk '{print $4/$2*100}')
if [ $(echo "$MEM_USAGE > 95" | bc) -eq 1 ]; then
    echo "ALERT: Memory usage is ${MEM_USAGE}%" | mail -s "High Memory Alert" admin@company.com
fi

3. 그래프로 시각화하기

# OSW 데이터를 CSV로 변환
awk '{print $1","$2","$3}' archive/*/oswcpu.dat > cpu_data.csv

# Excel이나 Grafana로 그래프 생성
# 시간대별 CPU/메모리 사용률 트렌드 분석

OSW vs 다른 모니터링 도구들 🥊

구분 OSW top/htop sar AWR

실시간 모니터링 ⭐⭐⭐ ⭐⭐⭐⭐⭐ ⭐⭐⭐
이력 분석 ⭐⭐⭐⭐⭐ ⭐⭐⭐⭐ ⭐⭐⭐⭐⭐
오라클 특화 ⭐⭐⭐⭐⭐ ⭐⭐ ⭐⭐⭐ ⭐⭐⭐⭐⭐
설치 편의성 ⭐⭐⭐⭐⭐ ⭐⭐⭐⭐⭐ ⭐⭐⭐⭐ ⭐⭐⭐
비용 무료! 🎉 무료 무료 라이선스 필요

결론: OSW는 "무료로 쓸 수 있는 가성비 최고의 모니터링 도구"! 💝

OSW 사용 시 꿀팁들 🍯

👍 Do (이렇게 하세요!)

  1. 적절한 수집 간격 설정
  2. # 일반적인 환경: 30-60초 ./startOSWbb.sh 30 # 고부하 환경: 10-15초 ./startOSWbb.sh 15
  3. 충분한 보관 기간 설정
  4. # 최소 7일, 권장 30일 ./startOSWbb.sh 30 720 # 30초 간격, 30일 보관
  5. 로그 로테이션 설정
  6. # crontab에 추가 0 1 * * * find /oracle/oswbb/archive -mtime +30 -delete

⚠️ Don't (하지 마세요!)

  1. 너무 짧은 수집 간격: 5초 이하는 시스템 부하 유발
  2. 로그 방치: 디스크 가득 참 주의!
  3. 분석 없는 수집: 모으기만 하고 분석 안 하기

문제 해결 - 이런 상황에는 이렇게! 🚨

Q: "OSW가 갑자기 멈췄어요!" 😱

# 1. 프로세스 확인
ps -ef | grep OSW

# 2. 디스크 공간 확인
df -h

# 3. 권한 확인
ls -la $ORACLE_HOME/oswbb

# 4. 재시작
./stopOSWbb.sh
./startOSWbb.sh

Q: "로그 파일이 너무 커요!" 📂💥

# 압축 보관
gzip archive/*/*.dat

# 오래된 파일 삭제
find archive/ -mtime +7 -name "*.dat" -delete

# 수집 간격 조정
./stopOSWbb.sh
./startOSWbb.sh 60  # 30초 → 60초로 변경

Q: "어떤 데이터를 봐야 할지 모르겠어요!" 🤷‍♂️

# 기본 체크 리스트
1. oswcpu.dat    → CPU 사용률 확인
2. oswmeminfo.dat → 메모리 상태 확인  
3. oswiostat.dat → 디스크 I/O 확인
4. oswnetstat.dat → 네트워크 상태 확인
5. oswtop.dat    → 프로세스별 리소스 사용량

실제 현업에서 OSW로 해결한 케이스들 🏆

Case Study 1: 미스터리한 성능 저하 🕵️‍♂️

문제: 매주 화요일마다 오후 2시에 시스템 응답속도 10배 저하 OSW 분석: oswiostat.dat에서 화요일 오후 2시에 I/O wait 급증 발견 원인: 주간 풀백업과 증분백업이 겹치는 시간 해결: 백업 스케줄 조정으로 문제 해결! 🎉

Case Study 2: 메모리 릭 발견 💧

문제: 서버 재시작 후 며칠 지나면 OOM(Out of Memory) 발생 OSW 분석: oswmeminfo.dat에서 지속적인 메모리 사용량 증가 패턴 발견 원인: 애플리케이션의 메모리 릭 해결: 개발팀과 협업하여 메모리 릭 코드 수정! 🔧

Case Study 3: 네트워크 병목 🌐

문제: 특정 시간대에 쿼리 타임아웃 다발 발생 OSW 분석: oswnetstat.dat에서 네트워크 패킷 드롭 발견 원인: 스위치 포트 duplex mismatch 해결: 네트워크 설정 수정으로 문제 해결! 📡

마무리: OSW와 함께하는 안정적인 시스템 운영! 🎯

OSW는 정말 **"모르면 손해, 알면 득"**인 도구예요!

OSW의 핵심 가치

  • 예방: 문제가 발생하기 전에 패턴 파악
  • 진단: 문제 발생 시 정확한 원인 분석
  • 최적화: 성능 튜닝을 위한 데이터 제공
  • 안정성: 24/7 무중단 모니터링

시작해보세요!

  1. 오늘 당장 OSW 설치하기
  2. 1주일 데이터 수집 후 패턴 분석
  3. 임계값 알림 설정하기
  4. 정기적인 리포트 작성하기

무료로 이런 강력한 도구를 쓸 수 있다니! 정말 오라클의 선물 같은 도구죠! 🎁

혹시 OSW 사용하면서 궁금한 점이나 재미있는 케이스가 있으시면 댓글로 공유해주세요! 함께 배우고 성장하는 DBA 커뮤니티를 만들어요! 💪

다음 포스팅에서는 OSW 데이터로 성능 튜닝하는 고급 기법에 대해 다뤄볼게요! 기대해 주세요! 🚀✨

📚 유용한 참고 자료

  • Oracle MOS: Doc ID 301137.1 (OSW 공식 가이드)
  • OSW 분석 도구: OSWatcher Black Box Analysis
  • 커뮤니티: Oracle Community Forums
  • 교육: Oracle University OSW 과정
728x90