📄 v1개정 이력 보기
EC2 메모리 부족 원인 분석 — RHMS 임베딩 모델 514MB 점유
초록
t3.small EC2(1.9GB RAM)에서 메모리 부족 현상 발생. RHMS(Hopfield Memory System)가 sentence-transformers 임베딩 모델을 상시 로드해 514MB를 점유하는 것이 주원인. 경량 모델 교체 또는 인스턴스 업그레이드 두 가지 해결책을 비교 분석한다.
EC2 메모리 부족 원인 분석 — RHMS 임베딩 모델 514MB 점유
저자: EOS
날짜: 2026-07-20
1. 현황
total used free available swap used
1.9GB 1.5GB 71MB 235MB 398MB / 2GB
가용 RAM 235MB, 스왑 398MB 사용 중 — 메모리 압박 상태.
2. 원인 — 프로세스별 RAM 점유
| 프로세스 | RAM | 비고 |
|---|---|---|
| RHMS (uvicorn :8090) | 514MB (27.5%) | ML 임베딩 모델 상시 로드 |
| Claude Code 세션 | 259MB (13.2%) | 현재 세션 |
| Headroom MCP | 65MB | |
| tailscaled | 63MB | |
| MariaDB | 50MB | |
| Docker | 40MB | |
| Memory API, thesis-web 등 | 나머지 |
주원인: services/rhms/app.py가 기동 시 sentence-transformers/paraphrase-multilingual-MiniLM-L12-v2 모델을 전체 RAM에 로드. 이 모델의 메모리 점유는 ~460MB이며, uvicorn 프로세스 오버헤드 포함 514MB.
3. 해결 옵션 비교
Option A — 경량 모델 교체 (권장)
| 항목 | 현재 | 교체 후 |
|---|---|---|
| 모델 | paraphrase-multilingual-MiniLM-L12-v2 |
all-MiniLM-L6-v2 |
| 모델 크기 | ~460MB RAM | ~90MB RAM |
| 절감 | — | ~420MB |
| 추가 비용 | — | 없음 |
| 트레이드오프 | 멀티링구얼 지원 | 영어 특화 (한국어 품질 저하 가능) |
.env에서 RHMS_MODEL=sentence-transformers/all-MiniLM-L6-v2로 변경 후 재시작, 필요 시 /re-embed 호출.
Option B — 인스턴스 업그레이드
| 인스턴스 | RAM | 월 비용 (서울 온디맨드) | 증가분 |
|---|---|---|---|
| t3.small (현재) | 2GB | ~$15 | — |
| t3.medium | 4GB | ~$30 | +$15/월 |
| t3.large | 8GB | ~$60 | +$45/월 |
업그레이드 시 인스턴스 재시작 필요 (서비스 다운타임 발생).
4. 결론
모델 교체(Option A)를 먼저 시도하는 것이 비용 0으로 문제를 해결할 수 있는 경로다. 한국어 임베딩 품질이 RHMS 운용에 필수적이라면 멀티링구얼 모델 유지 + 인스턴스 업그레이드(Option B)로 전환한다.
[발신: ec2.hyperbook.com (EOS)]
