[WSL2] Vmmem의 RAM 점유율 해결 방법

2022. 7. 17. 07:40·Learning-Log/Computer Science
목차
  1. WSL2 RAM 사용량 최대값 설정하기
  2. 문제의 원인
728x90
320x100

RAM 95% 달성 기념으로 이전 포스팅에서 RAM 용량에 대한 내용을 다루었다.

 

개발자 노트북의 RAM은 16GB로는 부족하다

주변에서 컴퓨터 견적이나 노트북 추천을 부탁해오면 항상 하는 말이 있다. 램은 최소 32GB로 맞춰라.. 게이밍 머신으로 데스크탑을 맞추는 용도가 아니면, 램 16GB는 정말 정말 뜯어 말리고 싶다.

xpectation.tistory.com

 

이 포스팅에서 살짝 언급한 WSL2는 램을 얼마나 잡아먹고 있는걸까?

작업 관리자에 표시되는 Vmmem 프로세스가 아마도 VmMemory를 뜻하는 것 같은데, 이 프로세스가 WSL2의 전부는 아니다. WSL2에서 잡아먹고 있는 램은 아래 명령어를 통해 확인 가능하다.

$ free -h

보시다시피, 물리 메모리가 7.6GB, Swap기술을 통해 SSD에서 땡겨온 메모리가 2.0GB. 도합 8.6GB 되시겠다.

충격적인 사실은 used는 2.1GB밖에 되지 않는다는 점이다. 컴퓨터의 램 사용량이 95%를 찍으며 허덕이고 있는 와중에 4.9GB나 되는 램이 태업(?)하고 있는 셈.

따라서 이 망할 태업 RAM들을 손봐주는 방법에 대해 이야기 해보려한다.

 

WSL2 RAM 사용량 최대값 설정하기

WSL은 어디까지나 Windows의 하위 시스템이므로 WSL의 설정은 WSL이 아니라 Windows에서 이루어진다.

C:\Users\<사용자>

위 경로로 이동하여, .wslconfig 파일을 생성해주자. 맨 앞에 마침표(.)를 빼먹으면 안된다.

해당 파일을 열고 아래의 내용을 입력하자.

[wsl2]
memory=4GB

앞서 살펴보았을 때, 실제 사용 RAM이 2.1GB 였다는 점에서 이 사용공간을 기준으로 2배 정도로 설정 해주었다. 아래는 위 설정을 해준 이후의 모습.

swap 기능은 SSD 용량을 땡겨와서 가상RAM으로 활용하는 기술인데, SSD 사용량이 증가하고 Read/Write 횟수가 많아진다는 단점은 있지만, 요즘은 SSD 기술이 많이 발전하여 일반적으로 많이 쓰이는 기술이라는 점에서 켜두었다. 또한, 4GB로 설정해둔 점이 그리 넉넉한 세팅은 아니라고 생각하기에 RAM이 갑작스럽게 부족해지면 예기치 못한 문제가 발생할 수 있다는 점에서 급할 때 땡겨쓸 수 있는 Swap 기능을 켜두었다. 
만약 swap 기능을 끄고 싶다면, swap=0 을 한 줄 더 써주면 된다.

[wsl2]
memory=4GB
swap=0

 

문제의 원인

약간 순서가 거꾸로 되어버렸지만, 이 문제의 원인을 이야기 해보려 한다.

 

WSL 2 consumes massive amounts of RAM and doesn't return it · Issue #4166 · microsoft/WSL

Your Windows build number: 18917 What's wrong / what should be happening instead: WSL 2 starts using huge amounts of RAM after a while, just using it like normal. At the moment I'm using ph...

github.com

사실 이 문제는 WSL2를 이용하는 사람들에게는 꽤 유명한 이슈이다.

위 링크에 들어가면 아래과 같은 짤도 볼 수 있다.

나보다 더 하다.

 

이러한 미친듯한 메모리 점유는 WSL2의 특성과 리눅스의 특성이 묘하게 맞아 떨어지면서 발생한다.

  • 리눅스 : RAM의 한계치까지 파일의 정보를 최대한 캐시로 보존함.
  • WSL2 : WSL2에 할당된 RAM이 부족해지면 WSL2에 추가적인 RAM을 할당함.

그러니까 리눅스는 RAM을 한계치까지 꽉꽉 채워서 RAM을 십분 활용하는 녀석인데, WSL2는 또 거기에 오냐오냐 해주다보니 리눅스가 전체 시스템의 RAM을 잠식해버리는 현상이 발생하는 것이다.

 

728x90
반응형
저작자표시 비영리 변경금지

'Learning-Log > Computer Science' 카테고리의 다른 글

[도서/AI] '구글 브레인 팀에게 배우는 딥러닝 with TensorFlow.js' 개발자 리뷰  (0) 2022.08.07
[TS] Typescript의 enum, const enum, as const 에 대해 알아보자  (1) 2022.07.18
[ReactJS] react-router의 useParams 에 대해 알아보자  (0) 2022.07.16
[JS] 모듈을 받아오는 import와 모듈을 내보내는 export  (0) 2022.07.15
[ReactJS] styled-components와 함께 하는 즐거운 ReactJS  (0) 2022.07.12
  1. WSL2 RAM 사용량 최대값 설정하기
  2. 문제의 원인
'Learning-Log/Computer Science' 카테고리의 다른 글
  • [도서/AI] '구글 브레인 팀에게 배우는 딥러닝 with TensorFlow.js' 개발자 리뷰
  • [TS] Typescript의 enum, const enum, as const 에 대해 알아보자
  • [ReactJS] react-router의 useParams 에 대해 알아보자
  • [JS] 모듈을 받아오는 import와 모듈을 내보내는 export
Xpectation
Xpectation
理
    반응형
    250x250
  • Xpectation
    자기실현적 기대
    Xpectation
  • 전체
    오늘
    어제
    • 전체보기 (213)
      • Thinking-Log (42)
        • 인간에 관한 생각 (22)
        • 사회현상에 관한 생각 (9)
        • 말씀에 관한 생각 (4)
        • 기타 잡념 (7)
      • Trading-Log (8)
        • 주식 잡념 (9)
      • Learning-Log (104)
        • Computer Science (70)
        • Economics (21)
        • Law (1)
        • ETC (12)
      • Review-Log (42)
        • 食思味 (13)
        • 聽思聰 (6)
        • 視思明 (12)
        • IT 제품, 전자기기 (6)
        • 게임 (0)
        • 기타 (5)
      • Creating-Log (5)
        • 주방 (0)
        • 서재 (5)
        • 기타 (0)
      • Photo-Log (3)
        • 사진 일기 (3)
      • 미분류 (0)
  • 블로그 메뉴

    • 홈
    • 방명록
    • 태그
  • 링크

    • 티스토리 홈
  • 공지사항

  • 인기 글

  • 태그

    매매일지
    경제학
    ASMR
    딥러닝
    클래식음악
    오블완
    티스토리챌린지
    수면유도
    주식
    마인드위즈Pro
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
Xpectation
[WSL2] Vmmem의 RAM 점유율 해결 방법

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.