서버 모니터링 가이드
서버가 느려지거나 응답이 없을 때, 어떤 자원이 병목인지 빠르게 파악할 수 있어야 합니다.
OS별 기본 도구만으로도 대부분의 성능 문제를 진단할 수 있습니다.
반드시 점검해야 하는 4가지 지표
CPU 사용률
지속적으로 80% 이상이면 처리량 한계.
Load Average가 코어 수보다 크면 대기 작업이 누적된 상태.
메모리 (RAM)
Available 0 근접 + Swap 사용 증가 시 부족 위험.
OOM Killer가 프로세스를 강제 종료할 수 있음.
디스크 용량 / I/O
85% 초과 시 정리 권장. 100% 도달 시 서비스 중단.
I/O Wait이 높으면 디스크 병목.
네트워크 트래픽
급격한 outbound 증가는 외부 공격 또는 의도치 않은 백업 작업 가능성.
Ubuntu — CLI 모니터링
⚡ top — 실시간 프로세스 / CPU / 메모리
$top실행 후 키 입력으로 정렬 가능: P CPU 정렬,M 메모리 정렬,q 종료.
🌈 htop — 컬러풀한 향상판 (권장)
$sudo apt install -y htop && htop화살표로 프로세스 선택, F9 종료(Kill),F5 트리 보기.
💾 메모리 / 디스크 빠른 점검
$free -h$df -h$du -sh * 2>/dev/null | sort -hr | head📈 I/O · 네트워크 · 시스템 로그
$iostat -x 5$vnstat -l$sudo journalctl -p err -n 50$sudo dmesg -T | grep -i "killed process"Windows Server 모니터링
🖥️ 1. 작업 관리자 (Task Manager)
Ctrl + Shift + Esc 또는Ctrl + Alt + Del → 작업 관리자
성능 탭에서 CPU/메모리/디스크/이더넷 그래프를 실시간 확인.
📊 2. 리소스 모니터 (Resource Monitor)
실행 창 (Win + R)에서:
resmon프로세스별 디스크 I/O, 네트워크 사용량, 메모리 페이지 폴트까지 상세 분석.
📜 3. 이벤트 뷰어 (Event Viewer)
시작 메뉴 → 이벤트 뷰어 검색Windows 로그 → 시스템 / 응용 프로그램
오류·경고 항목을 통해 서비스 다운, 메모리 누수, 디스크 오류 등 원인 추적 가능.
⚡ 4. PowerShell 빠른 점검
Get-Process | Sort-Object CPU -Descending | Select-Object -First 5Get-Process | Sort-Object WS -Descending | Select-Object -First 5 Name, @{N='MB';E={[math]::Round($_.WS/1MB,1)}}Get-PSDrive -PSProvider FileSystem | Select-Object Name, Used, Free자동 알림 — 임계치 도달 시 통보
매번 직접 확인하지 않고도 임계치 초과 시 슬랙·이메일로 알림을 받도록 구성할 수 있습니다.
🐧 Ubuntu — 디스크 사용률 90% 초과 시 슬랙 알림 (cron)
sudo tee /usr/local/bin/disk-alert.sh > /dev/null <<'EOF'
#!/bin/bash
USAGE=$(df / | tail -1 | awk '{print $5}' | tr -d '%')
if [ "$USAGE" -gt 90 ]; then
curl -X POST -H 'Content-type: application/json' \
--data "{\"text\":\"⚠️ 디스크 사용률 ${USAGE}%\"}" \
https://hooks.slack.com/services/XXX
fi
EOF$sudo chmod +x /usr/local/bin/disk-alert.sh && (crontab -l 2>/dev/null; echo "0 * * * * /usr/local/bin/disk-alert.sh") | crontab -고급 옵션: 본격적인 모니터링이 필요하다면 Netdata, Grafana + Prometheus, Zabbix 같은 오픈소스 솔루션을 도입하세요. Netdata는 apt install netdata 한 줄로 설치 가능.
서버가 느려졌을 때 진단 순서
- 1Load Average 확인 — 코어 수보다 큰가? (top / uptime)
- 2CPU·메모리 점유 1위 프로세스 확인 — htop / top
- 3Swap 사용량 / Available 메모리 확인 — free -h
- 4디스크 가득 참 여부 확인 — df -h (특히 / 와 /var)
- 5I/O Wait 확인 — top 상단 %wa (5% 이하 정상)
- 6최근 오류 로그 점검 — journalctl / 이벤트 뷰어
- 7외부 트래픽 이상 — DDoS / 비정상 요청 여부 확인