VS Code Remote-SSH CPU 폭주 문제 해결기

박병훈·2025년 8월 19일
0

개발위키

목록 보기
3/3

1. 문제 상황

회사 서버(Rocky Linux 8.9)에 VS Code Remote-SSH로 접속하면,
접속 순간 node 프로세스가 CPU 100% 이상을 먹으며 서버가 버벅거림.

top과 pstree로 확인해보니 VS Code 서버(node) 밑에

--type=extensionHost

--type=fileWatcher

--type=ptyHost
같은 자식 프로세스가 실행되면서 폭주.

특히 fileWatcher와 extensionHost가 워크스페이스 전체를 스캔하면서 터짐.

👉 흔히 겪는 증상: "VS Code 원격 붙을 때 서버가 뻗는다"

2. 원인 분석

워크스페이스 범위: /data 같은 대형 디렉터리를 루트로 열어버리면 로그, 백업, 빌드 산출물까지 전부 감시.

fileWatcher: VS Code가 inotify로 전체 파일을 감시하려 하면서 CPU/IO가 급등.

extensionHost: 설치된 확장(파이썬, 타입스크립트, Git 등)이 초기 인덱싱을 돌림.

ripgrep(rg): 검색 인덱스를 만들기 위해 대형 로그·git 폴더까지 긁음.

3. 해결 방법

(1) VS Code Remote Settings 최적화

settings.json 예시:

{
  // 워처 전면 차단 (진단용, 이후 점진 허용)
  "files.watcherExclude": { "**": true },

  // Git 패널/자동 갱신 꺼서 CPU 감소
  "git.enabled": false,

  // 확장 자동 업데이트 비활성화
  "extensions.autoUpdate": false,
  "extensions.autoCheckUpdates": false,

  // JS/TS/NPM 자동 스캔 억제
  "npm.autoDetect": "off",
  "typescript.disableAutomaticTypeAcquisition": true,
  "typescript.tsserver.useSeparateSyntaxServer": true,
  "typescript.tsserver.experimental.useVsCodeWatcher": false,

  // 불필요한 자동완성 줄이기
  "javascript.suggest.completeFunctionCalls": false,
  "editor.wordBasedSuggestions": false,

  // 창/폴더 자동 복원 금지 → 큰 경로 열리는 문제 방지
  "window.restoreWindows": "none",
  "workbench.editor.restoreViewState": false,
  "workbench.startupEditor": "none",

  // 원격 포트 자동 스캔 차단
  "remote.autoForwardPorts": false
}

(2) 워크스페이스 범위 줄이기

/data 전체를 열지 말고, 실제 코드 폴더만 워크스페이스로 열기.

logs/, backup/, node_modules/, .venv/ 같은 건 워크스페이스 밖으로.

(3) .ignore로 이중 방어

워크스페이스 루트에 .ignore 파일 추가:

logs/
*.log
*.gz
*.csv
node_modules/
.venv/
dist/
build/

→ VS Code 내부 검색(rg)도 이 경로를 무시.

(4) 확장 최소화

Remote-SSH, Python 등 필수만 ON

GitLab, ESLint, Prettier, 테마/아이콘팩 등은 원격에서 OFF

(5) 서버 운영 측면 대응

renice, ionice로 extensionHost/fileWatcher 프로세스 우선순위 낮추기

필요시 cpulimit/cgroup으로 CPU 쿼터 제한

4. 결과

접속 직후 CPU가 100%(적용 전) → 40%(적용 후) 이하로 순간 치솟았다가 바로 안정화

서버 전체 서비스(nginx, gunicorn 등)는 영향 거의 없음

워크스페이스를 코드 폴더로만 열면 체감상 CPU 스파이크조차 거의 사라짐

5. 느낀 점

VS Code Remote-SSH는 정말 편리하지만,
“로그/대형 디렉터리를 통째로 열면 서버가 고통받는다” 는 교훈.

결국 핵심은 “필요한 것만 열기 + 불필요한 워치/인덱싱 끄기”.

0개의 댓글