Skip to content
SON BLOG
Go back

OpenSearch ML 모델 배포 시 메모리 99% 점유 원인과 해결법

Edit page

Hugging Face embedding 모델을 OpenSearch에 배포(deploy)한 후 메모리가 급격히 차오르거나 꽉 차는 현상은 다음과 같은 이유에서 발생할 수 있다.

특히 ML Commons 기반 추론 또는 text_embedding processor를 사용할 때 다음 요소들을 반드시 확인해야 한다.

주요 원인 정리

1. 모델 자체의 메모리 점유가 큼

2. 모델이 언로드되지 않고 계속 상주함

3. JVM 힙이 아닌 native 메모리를 사용함

4. 추론 태스크 수 증가 / 비동기 쌓임

5. ML task 설정값 미조정

확인할 수 있는 지표

  1. 실행 중인 ML 태스크
GET /_plugins/_ml/tasks
  1. 로드된 모델 확인
GET /_plugins/_ml/models/_all
  1. 노드 자원 확인
GET /_nodes/stats/jvm,os,process

해결 방법

(1) ML 전용 노드로 분리

(2) 모델 task 제한 설정

- plugins.ml_commons.max_ml_task_per_node=2
- plugins.ml_commons.native_memory_threshold=85

(3) 모델 수동 언로드

POST /_plugins/_ml/models/{model_id}/unload

(4) embedding batch 수 제한 (ingest pipeline)

요약

원인설명
모델이 크고 로딩 후 상주기본적으로 모델은 언로드되지 않음
JVM 힙이 아닌 native 메모리 사용PyTorch가 OS 메모리를 직접 사용함
추론 요청 쌓임ML 태스크 큐가 과부하되면 memory leak처럼 보임
태스크 제한 설정 없음한 노드에서 과도한 ML 요청 처리 중

Edit page
Share this post:

Previous Post
OpenSearch 샤드 구성 — number_of_shards 설정 가이드
Next Post
OpenSearch 설치 및 빌드를 위한 서버 자원 확인 절차