개발환경구축/Visual Studio Code
[VSC] Pylance 언어 서버 메모리 부족 문제 해결 방법
곧미남
2025. 4. 1. 11:30
진짜 어마어마한 삽질을 많이 했다!
나의 문제는 이거였다.
도커 컨테이너 run할때 -v로 dataset 공유 폴더를 연동했는데, 그게 작업 폴더 경로에 있었습니다. 근데 이 dataset 공유 폴더에 1000만개 이상의 wav데이터가 존재합니다. 그걸 pylance가 작업 폴더의 파일들을 읽어서 뭐 처리를 하는데, heap 메모리가 초과되어 oom 문제로 정상적으로 작동하지 않았던거죠.
- 문제 파악 방법 아래 캡처본과 같이 VSC, Python 언어 서버에서 터미널-출력 내용을 보면, 아래와 같이 Error가 출력된다.

- Error 내용 : FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory
원인 : 왜 발생하는지 gpt한테 물어보니, 아래와 같이 답변해줌.
- node 프로세스가 약 4GB 한계에서 메모리 초과 발생
- SIGABRT로 강제 종료 → 다시 재시작됨 (무한 반복)
- 언어 서버가 전체 프로젝트를 제대로 분석할 여유 없이 계속 죽고 재시작 중
이 상태에선 정의로 이동, 자동완성 등은 전혀 작동할 수 없어요.그러면, 근본적인 해결이 안되니 다시 물었다.
근데 골때리는 건, 해결 방법으로 그냥 단순히 Node.js 힙 메모리 확장하라는 것이다.
그러면, 근본적인 해결이 안되니 다시 물었다.
"근데 근본적으로 이 힙 메모리가 왜 부족한지 파악할 수 있어?"
- 힙 메모리 부족 원인
원인 설명 🔍 대규모 프로젝트 구조 폴더 내에 수백~수천 개의 .py, .json, .txt, .ipynb, log, wav, flac, pkl 파일이 존재할 경우 🔁 순환 참조 또는 복잡한 import 구조 프로젝트 안에 import가 겹치거나, 깊이 있는 패키지 구조가 있을 경우 📚 의도치 않게 분석된 대용량 파일 모델 weight(.pt/.bin), dataset(.wav/.flac), log 등 코드가 아닌 파일이 포함되었지만 Pylance가 분석하려 시도할 때 🧪 자동 분석 범위가 너무 넓음 python.analysis.autoSearchPaths, extraPaths, PYTHONPATH 등을 통해 너무 넓은 경로를 스캔 중 ⚠️ 노트북(.ipynb) 캐시 또는 Jupyter 연동 VS Code가 .ipynb까지 분석하려고 할 때 내부 JSON이 터짐
이제 정확한 원인을 파악할 수 있었다. 나는 앞에서도 얘기했지만, 도커 컨테이너 run할때 -v로 dataset 공유 폴더를 연동했는데, 그게 작업 폴더 경로에 있었습니다. 근데 이 dataset 공유 폴더에 1000만개 이상의 wav데이터가 존재합니다. 그걸 pylance가 작업 폴더의 파일들을 읽어서 뭐 처리를 하는데, heap 메모리가 초과되어 oom 문제로 정상적으로 작동하지 않았던거다! 즉, 표에서는 대규모 프로젝트 구조로 인해 폴더내에 수백~수천 개의 파일이 존재할 경우에 문제가 발생하는 것이다.
- 해결 방법 1: setting.json 파일에 "python.analysis.exclude": [pylance 검토 제외할 폴더 경로] 추가!
{
"python.defaultInterpreterPath": "/usr/bin/python3",
"python.analysis.autoSearchPaths": true,
"python.languageServer": "Pylance",
"python.analysis.extraPaths": [
"/usr/lib/python3.10",
"/usr/lib/python3.10/lib-dynload",
"/usr/lib/python3.10/site-packages"
],
"python.analysis.exclude": [
"/home/mnt_data"
],
}
- 해결 방법 2: 작업 폴더 경로 하위에 대규모 data 파일이 존재하는 폴더를 포함 안되게 하면 됨!
반응형