일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- #일본어문법 #を문법 #に문법 #조사완전정복 #n5문법 #일본어기초 #jlpt #일본어공부 #기초문법 #실용일본어
- 태그: #jlpt #n3 #일본어 #중급문법 #일본어시험 #양보표현 #복합문법 #실전연습 #일본어회화 #일본어공부
- #일본여행 #환전일본어 #일본어회화 #바로써먹는일본어 #여행일본어 #실용일본어 #일본어공부 #여행준비
- #간염 #b형 #간암 #절제 #간경화
- #일본어문법 #のに문법 #n3문법 #대조표현 #양보표현 #jlpt #일본어공부 #감정표현 #실용일본어 #일본어중급
- #일본어문법 #らしい문법 #n4문법 #추측표현 #일본어회화 #jlpt #일본어공부 #중급문법 #실용일본어 #문법정복
- 태그: #생활용품한자 #일본어한자 #jlpt #일본어공부 #생활일본어 #한자학습 #실용일본어 #일본생활 #한자암기 #일본쇼핑
- #일본요리 #요리일본어 #일본어회화 #바로써먹는일본어 #생활일본어 #실용일본어 #일본어공부 #요리교실
- #일본어메일 #바로써먹는일본어 #일본어회화 #비즈니스일본어 #일본어공부 #실용일본어 #이메일매너 #일본어표현
- #나가사키여행 #메가네바시 #일본여행 #혼자여행 #포토스팟 #일본문화 #여행후기 #나가사키맛집 #안경다리 #일본관광
- #일본어 #한자 #일어 #일본
- #일본어문법 #そうだ문법 #n4문법 #추측표현 #일본어회화 #jlpt #일본어공부 #중급문법 #실용일본어 #외견추측
- #히메지성 #세계문화유산 #일본렌터카여행 #백로성 #천수각 #드라이브여행
- #jlpt #n5 #일본어 #기초문법 #일본어시험 #초급일본어 #실전연습 #문법기초 #일본어회화 #일본어공부
- #일본어공부 #주차장일본어 #렌터카여행 #일본여행 #실용일본어 #여행일본어 #일본주차 #주차장표현 #일본어회화 #여행팁
- #일본식당예약 #일본여행 #일본어회화 #바로써먹는일본어 #여행일본어 #실용일본어 #일본어공부 #일본맛집
- #일본어문법 #ので문법 #n4문법 #이유표현 #정중표현 #jlpt #일본어공부 #비즈니스일본어 #실용일본어 #일본어중급
- #산마르짜노 #신퀀타 #블랙에디션 #이탈리아와인 #풀리아 #프리미티보 #네그로아마로 #풀바디와인 #베리향 #와인추천 #프리미엄와인 #와인리뷰 #이탈리아남부 #홈와인 #와인페어링
- #jlpt #n4 #일본어 #중급문법 #일본어시험 #조건표현 #경어 #실전연습 #일본어회화 #일본어공부
- 태그: #일본사케 #ひやしぼり #사케리뷰 #최고금상 #프리미엄사케 #와인글래스사케 #일본술 #사케추천 #홈술 #사케페어링
- #일본어소설 #단편소설 #감성소설 #서정소설 #일본문학 #일본어창작
- #여행한자 #일본여행 #일본어한자 #jlpt #일본어공부 #여행일본어 #한자학습 #실용일본어 #관광한자 #한자암기
- 태그: #여름한자 #계절한자 #일본어한자 #jlpt #일본어공부 #여름일본어 #한자학습 #실용일본어 #계절표현 #한자암기
- #문법 #일본어 #일어 #일본
- #jlpt #n1 #일본어 #최고급문법 #일본어시험 #고급일본어 #실전연습 #문법정복 #문어체 #비즈니스일본어
- #jlpt #n2 #일본어 #최고급문법 #일본어시험 #양보표현 #복합문법 #실전연습 #학술일본어 #비즈니스일본어
- #일본어문법 #たい문법 #n4문법 #희망표현 #일본어회화 #jlpt #일본어공부 #중급문법 #실용일본어 #욕구표현
- #병원한자 #의료한자 #일본어한자 #jlpt #일본어공부 #의료일본어 #한자학습 #실용일본어 #일본병원 #한자암기
- #오토코야마 #남산사케 #홋카이도사케 #니혼슈 #일본술 #사케 #준마이다이긴죠 #몽드셀렉션 #삿포로여행 #사케추천 #일본여행선물 #이마트사케 #홋카이도여행
- #일본어문법 #まで문법 #n5문법 #시간표현 #장소표현 #jlpt #일본어공부 #기초문법 #실용일본어 #일본어기초
- Today
- Total
일상과 여행 사이, 작은 발견들을 기록합니다
🖥️ Solaris vmstat 완전 정복 가이드 - Solaris 시스템 모니터링의 필수 도구 본문
🖥️ Solaris vmstat 완전 정복 가이드 - Solaris 시스템 모니터링의 필수 도구
안녕하세요! 오늘은 Solaris 시스템 관리자라면 반드시 알아야 할 vmstat 명령어에 대해 쉽고 재미있게 알아보겠습니다. vmstat을 마스터하면 시스템의 건강 상태를 한 눈에 파악할 수 있어요! 🩺
🤔 vmstat이 뭔가요?
vmstat은 "Virtual Memory Statistics"의 줄임말로, 시스템의 메모리, CPU, 프로세스 등의 상태를 실시간으로 보여주는 명령어입니다. 마치 시스템의 건강 검진표와 같다고 생각하면 됩니다!
🚀 기본 사용법
가장 간단한 사용법
vmstat
이렇게 입력하면 시스템 부팅 이후의 평균 통계가 나타납니다.
실시간 모니터링
vmstat 2 # 2초마다 업데이트
vmstat 1 10 # 1초마다 10번 출력
vmstat 5 # 5초마다 계속 출력 (Ctrl+C로 중지)
vmstat -T d 3 # 타임스탬프 포함하여 3초마다
📊 Solaris vmstat 출력 해석하기
vmstat을 실행하면 이런 화면이 나타납니다:
kthr memory page disk faults cpu
r b w swap free re mf pi po fr de sr v0 v1 v2 v3 in sy cs us sy id
0 0 0 515040 1326760 2 7 2 3 6 0 96 0 29 0 0 899 1229 972 1 1 99
🏃♂️ kthr (커널 스레드 정보)
- r (runnable): 실행 가능한 커널 스레드 수
- 💡 팁: CPU 코어 수보다 계속 높으면 과부하 상태!
- b (blocked): 자원 대기 중인 스레드 수
- 💡 팁: 이 값이 높으면 I/O나 메모리 병목 의심!
- w (swapped): 스왑된 스레드 수
- 💡 팁: 이 값이 0이 아니면 심각한 메모리 부족!
🧠 memory (메모리 정보)
- swap: 사용 가능한 스왑 공간 (KB)
- 💡 주의: 이 값이 계속 줄어들면 스왑 부족!
- free: 사용 가능한 메모리 (KB)
- 💡 팁: 너무 적으면 메모리 증설 고려
📄 page (페이징 정보)
- re (reclaim): 회수된 페이지 수
- mf (minor faults): 마이너 페이지 폴트 수
- pi (page in): 페이지 인 횟수 (스왑에서 메모리로)
- 🚨 경고: 계속 발생하면 메모리 부족!
- po (page out): 페이지 아웃 횟수 (메모리에서 스왑으로)
- 🚨 경고: 계속 발생하면 메모리 부족!
- fr (freed): 해제된 페이지 수
- de (anticipated short-term memory shortfall): 예상 메모리 부족량
- sr (scan rate): 페이지 스캔 비율
- 💡 팁: 높으면 메모리 압박 상태
💾 disk (디스크 정보)
- v0, v1, v2, v3: 각 디스크별 초당 I/O 횟수
- 💡 팁: 특정 디스크만 높다면 부하 분산 고려
⚙️ faults (시스템 정보)
- in (interrupts): 초당 인터럽트 횟수
- 💡 팁: 급격히 높아지면 하드웨어 문제 의심
- sy (system calls): 초당 시스템 콜 횟수
- 💡 팁: 애플리케이션 효율성 지표
- cs (context switches): 초당 컨텍스트 스위치 횟수
- 💡 팁: 너무 높으면 스케줄링 오버헤드 증가
🎯 cpu (CPU 사용률)
- us (user): 사용자 프로세스 CPU 사용률 (%)
- sy (system): 시스템(커널) CPU 사용률 (%)
- id (idle): 유휴 CPU 사용률 (%)
🤔 I/O 대기율은 어디에?: Solaris vmstat에는 I/O 대기율이 없어요! iostat -x 또는 sar -u 명령어를 별도로 사용해야 합니다.
📋 당신의 vmstat 출력 분석
보여주신 출력을 분석해보면:
vmstat -T d 3 # 날짜/시간 포함하여 3초 간격으로 모니터링
2025년 06월 5일 목요일 오전 7시 12분 56초 KST
kthr memory page disk faults cpu
r b w swap free re mf pi po fr de sr v0 v1 v2 v3 in sy cs us sy id
0 0 0 515040 1326760 2 7 2 3 6 0 96 0 29 0 0 899 1229 972 1 1 99
시스템 상태: 🟢 매우 건강함!
- r=0: 실행 대기 중인 스레드 없음 → CPU 여유로움
- b=0: 자원 대기 스레드 없음 → 병목 없음
- w=0: 스왑된 스레드 없음 → 메모리 충분
- swap=515MB: 사용 가능한 스왑 공간
- free=1.3GB: 사용 가능한 메모리 충분
- pi=2, po=3: 매우 낮은 페이징 → 메모리 압박 거의 없음
- v1=29: 약간의 디스크 I/O 있음 (정상 수준)
- us=1, sy=1, id=99: CPU 사용률 2%로 거의 유휴 상태
결론: 완벽한 시스템 상태! 😎
💡 참고: -T d 옵션으로 타임스탬프까지 포함해서 모니터링하고 계시네요! 로그 분석할 때 매우 유용합니다.
🔍 실전 활용 예제
1. 시스템 부하 체크
# 10초간 1초마다 모니터링
vmstat 1 10
체크 포인트:
- r 값이 CPU 코어 수보다 많이 높은가? → CPU 과부하
- pi, po가 계속 발생하는가? → 메모리 부족
- sr 값이 높은가? → 메모리 압박
2. 메모리 압박 상황 감지
# 페이징 활동 모니터링
vmstat 2 | awk '$9>0 || $10>0 {print strftime("%Y-%m-%d %H:%M:%S"), "PAGING DETECTED:", $0}'
3. I/O 대기율 확인 (별도 명령어 필요)
# I/O 상세 분석
iostat -x 2
# CPU 대기율 포함
sar -u 2
4. 디스크별 부하 분석
# 디스크 통계는 iostat으로
iostat -x 2 # 상세 디스크 분석
iostat -D 2 # 디스크별 통계
🚨 문제 상황별 진단법
😰 상황 1: 시스템이 느려요!
vmstat 2
체크리스트:
- r > CPU 코어 수 × 2 → CPU 업그레이드 고려
- b > 5 → I/O 병목 또는 메모리 부족
- pi, po > 0 → 메모리 증설 필요
- sr > 200 → 메모리 압박 상태
😱 상황 2: 메모리가 부족한 것 같아요!
# 메모리 상태 상세 확인
vmstat 1 5
prtconf | grep Memory # 총 메모리 확인
진단:
- pi, po 값이 계속 증가 → 심각한 메모리 부족
- w > 0 → 프로세스가 스왑됨 (매우 심각!)
- sr > 100 → 메모리 압박
🐌 상황 3: 디스크가 느린 것 같아요!
vmstat 1
iostat -x 2
확인사항:
- v0, v1, v2, v3 값이 계속 높은가?
- b (blocked) 값이 높은가?
- iostat에서 %busy가 높은가?
💡 vmstat 마스터 팁
1. 종합 모니터링 스크립트
#!/bin/ksh
# Solaris 시스템 모니터링
echo "=== SYSTEM OVERVIEW ==="
uptime
echo ""
echo "=== VMSTAT ==="
vmstat 1 3
echo ""
echo "=== MEMORY ==="
prtconf | grep Memory
echo ""
echo "=== DISK I/O ==="
iostat -x 1 2
2. 메모리 압박 감지 스크립트
#!/bin/ksh
# 메모리 압박 상황 실시간 감지
vmstat 5 | while read line; do
pi=$(echo $line | awk '{print $9}')
po=$(echo $line | awk '{print $10}')
sr=$(echo $line | awk '{print $12}')
if [ "$pi" -gt 0 ] || [ "$po" -gt 0 ] || [ "$sr" -gt 100 ]; then
echo "$(date): MEMORY PRESSURE DETECTED! pi=$pi po=$po sr=$sr"
# 알림 메일 발송
echo "Memory pressure detected on $(hostname)" | mailx -s "System Alert" admin@company.com
fi
done
3. CPU 과부하 감지
#!/bin/ksh
# CPU 과부하 감지 (CPU 코어 수에 따라 임계값 조정)
CPU_CORES=$(psrinfo | wc -l)
vmstat 5 | while read line; do
runnable=$(echo $line | awk '{print $1}')
if [ "$runnable" -gt $((CPU_CORES * 2)) ]; then
echo "$(date): HIGH CPU LOAD! Runnable processes: $runnable"
fi
done
📈 성능 최적화 가이드
CPU 최적화
- us 높음 → 애플리케이션 최적화 또는 CPU 업그레이드
- sy 높음 → 시스템 콜 줄이기, 커널 파라미터 튜닝
- cs 매우 높음 → 프로세스/스레드 수 조정
메모리 최적화
- pi, po 발생 → 메모리 증설 또는 애플리케이션 메모리 사용량 최적화
- sr 높음 → 커널 파라미터 튜닝 (lotsfree, minfree 등)
- w > 0 → 즉시 메모리 증설 필요
디스크 I/O 최적화
- 특정 디스크만 바쁨 → 부하 분산 고려 (ZFS pool 재구성)
- 전체적으로 높음 → SSD 도입 또는 ZFS 성능 튜닝
- iostat과 함께 분석하여 병목 지점 정확히 파악
🔧 Solaris vmstat 옵션들
기본 옵션
vmstat # 시스템 부팅 이후 평균
vmstat 간격 # 예: vmstat 2 (2초마다)
vmstat 간격 횟수 # 예: vmstat 2 10 (2초마다 10회)
고급 옵션
vmstat -T d # 날짜/시간 타임스탬프 포함
vmstat -p # 페이징 상세 정보
vmstat -s # 시스템 전체 통계 요약
vmstat -S # 스왑 상세 정보
페이징 상세 분석 (-p 옵션)
vmstat -p 2
이 옵션은 페이징 관련 더 자세한 정보를 제공합니다.
시스템 통계 요약 (-s 옵션)
vmstat -s
시스템 부팅 이후의 모든 통계를 요약해서 보여줍니다.
🎯 실습 문제
문제 1: 다음 vmstat 출력을 보고 시스템 상태를 진단해보세요.
kthr memory page disk faults cpu
r b w swap free re mf pi po fr de sr v0 v1 v2 v3 in sy cs us sy id
12 3 2 8192000 102400 15 20 50 80 100 0 300 0 0 15 0 2000 5000 8000 70 25 5
해답:
- r=12: 높은 실행 대기열 → CPU 과부하
- b=3: 자원 대기 프로세스 존재 → I/O 또는 메모리 병목
- w=2: 스왑된 프로세스 → 심각한 메모리 부족!
- pi=50, po=80: 활발한 페이징 → 메모리 부족
- sr=300: 높은 스캔율 → 메모리 압박
- v2=15: 디스크 I/O 활동
- id=5: CPU 사용률 95% → CPU 과부하
- 결론: 즉시 메모리 증설과 CPU 업그레이드 필요! 🚨
🛠️ 유용한 vmstat 조합 명령어
# 시스템 전반적 상태 체크
alias syscheck='echo "=== VMSTAT ==="; vmstat 1 3; echo "=== MEMORY ==="; prtconf | grep Memory; echo "=== LOAD ==="; uptime; echo "=== I/O ==="; iostat -x 1 2'
# 5분간 상세 모니터링 (타임스탬프 포함)
vmstat -T d 5 60 | tee system_performance_$(date +%Y%m%d_%H%M).log
# 메모리 압박 상황 감지
vmstat 2 | awk '$9>0 || $10>0 || $12>100 {print strftime("%Y-%m-%d %H:%M:%S"), "MEMORY PRESSURE:", $0}'
# 실시간 CPU 과부하 감지
vmstat 1 | awk '{if(NR>3 && $1>4) print strftime("%Y-%m-%d %H:%M:%S"), "HIGH CPU LOAD:", $1, "runnable"}'
🔍 Solaris 전용 성능 모니터링 조합
# 종합 성능 분석
echo "=== CPU & MEMORY ==="
vmstat -T d 1 3
echo ""
echo "=== DISK I/O ==="
iostat -x 1 3
echo ""
echo "=== NETWORK ==="
netstat -i
echo ""
echo "=== PROCESS ==="
prstat 1 1
# ZFS 성능 분석 (ZFS 사용 시)
echo "=== ZFS ARC ==="
kstat -p zfs:0:arcstats | grep -E "(hits|misses|size)"
🎊 마무리
Solaris vmstat은 시스템 관리자의 Swiss Army Knife같은 도구입니다! 정기적으로 모니터링하면:
✅ 장애 예방: 메모리 압박이나 CPU 과부하를 미리 감지
✅ 성능 최적화: 페이징 패턴으로 병목 지점을 정확히 파악
✅ 용량 계획: 하드웨어 업그레이드 시점 예측
✅ 트러블슈팅: 문제 발생 시 빠른 원인 분석
특히 pi/po (페이징) 모니터링이 핵심이에요! 이 값들이 계속 발생하면 즉시 메모리 증설을 고려해야 합니다.
Solaris의 경우 ZFS와 함께 사용할 때 더욱 강력한 성능 분석이 가능하니, iostat, zpool iostat, prstat 등과 함께 활용해보세요!
이제 여러분도 Solaris vmstat 마스터가 되어 시스템을 완벽하게 관리해보세요! 💪
📚 관련 글 추천:
- iostat으로 Solaris 디스크 성능 분석하기
- prstat로 Solaris 프로세스 모니터링하기
- ZFS 성능 튜닝 완전 가이드
- Solaris DTrace 활용법
🤝 궁금한 점이 있으시다면 댓글로 남겨주세요!
'Oracle_Unix_Server' 카테고리의 다른 글
🗂️ ZFS 파일 시스템 완전 정복: 초보자를 위한 단계별 가이드 (2) | 2025.06.09 |
---|---|
🌟 Solaris 커널의 놀라운 여정 - 30년간 진화한 UNIX의 걸작 (12) | 2025.06.05 |
Solaris 11.4 VNC, 원격 접속의 새로운 세계! 🖥️ (2) | 2025.06.04 |
Solaris 11.4 NFS, 넌 누구냐? 🤔 (2) | 2025.06.04 |
Solaris 11.4 Explorer: 시스템 진단의 슈퍼히어로 🦸♂️ (1) | 2025.06.03 |