한줄공지
  • 등록된 공지내용이 없습니다.

vmmem 프로세스 메모리 제한 (WSL2, Docker)

2022년 8월 4일
조회수 289
코멘트 8

목차

vmmemm 프로세스는 WLS2기반 Docker사용시에 사용되는 프로세스로 상당히 많은 메모리를 잡아먹는 프로세스이기도 합니다. 이 덕분에 개인적으로도 16기가 메모리 머신은 사용하기가 어렵워 vmmemm의 프로세스 메모리 사용량을 제한하는 방법을 찾은뒤 이를 공유 해 봅니다.

 

문제의 원인

WLS2기반 Docker사용시 다음과 같은 원인으로 vmmem의 메모리 사용량이 증가되는것으로 보입니다.

  1. 리눅스에서 파일 액세스시, 리눅스 OS는 그 정보를 캐시로 사용하기 위해 메모리에 보존. 이는 메모리가 부족해서 더 이상 보존할 수 없을때 까지 반복됨
  2. WSL2는 Linux의 메모리 사용량에 따라 사용 메모리 크기를 동적으로 증가 및 감소시킨다.

이는 최대 PC메모리의 80%까지 반복되며, 아직까지 MS도 보고된 이슈이지만 이시점까지 1년이상 이에 대한 업데이트는 이루어지고 있지 않습니다.

 

대처 방안

대략적으로 3가지의 해결 방안이 존재 합니다.

  1. WLS2 메모리 할당 제한
  2. 리눅스 OS안에서 메모리 대처
  3. 사용할때만 Docker Desktop 사용

 

WSL2 메모리 할당 제한

이 방법은 WSL2의 컨테이너에 할당되는 메모리를 제한하는 방법입니다. 자신의 유저 디렉토리 c:Users사용자이름에 하단과 같은 내용을 입력 한 .wslconfig파일을 하나 만들어 주세요.

[wsl2]
memory=4GB
swap=0
[wsl2]
kernel=              # An absolute Windows path to a custom Linux kernel.
memory=4G            # How much memory to assign to the WSL2 VM.
processors=          # How many processors to assign to the WSL2 VM.
swap=                # How much swap space to add to the WSL2 VM. 0 for no swap file.
swapFile=            # An absolute Windows path to the swap vhd.
localhostForwarding=bool # Boolean specifying if ports bound to wildcard or localhost in the WSL2 VM should be connectable from the host via localhost:port (default true).

#  entries must be absolute Windows paths with escaped backslashes, for example C:UsersBenkernel
#  entries must be size followed by unit, for example 8GB or 512MB

메모리의 설정은 각자 컴퓨터의 최대 메모리 및 여유 메모리를 확인 한 후 적당량을 설정 해 주세요.

아래는 .wslconfig파일 설정을 하기전 WSL2 및 컨테이너에 접속후 메모리 정보를 확인한 내용입니다.

이제 리부팅 후 .wslconfig파일 설정 후 WSL2 및 컨테이너에 접속후 메모리 정보를 확인한 내용입니다.

 

참조

안정적이고 저렴한 가상 서버(VPS) 안내

안정적인 서버 호스팅을 찾고 계신가요? 지금 Vultr 호스팅을 한번 이용 해 보세요. 지금 보고 계신 HaruLogs 사이트도 Vultr에서 VPS 호스팅 하고 있습니다. 한국, 일본, 미국등 다양한 국가에 클릭 몇번으로 안정적이고 저렴한 VPS를 운영 할 수 있습니다.

아래 배너를 통해 회원 가입을 하시면 100달러의 무료 크레딧을 받을 수 있습니다. 100달러의 무료 크레딧은 Vultr의 최소 사양 VPS를 20대 동시 운영가능한 크레딧입니다.

지금 무료로 Vultr $100 크레딧 선물 받기

 

Vultr 서비스 요약

  • VPS
    • 인스턴스
      • AMD 또는 Intel High Performance 인스턴스 최저 $6 - 1vCPU, 1GB Memory, 2TB Bandwidth, 25GB NVMe
    • 엣지
  • Block Storage
  • Object Storage (AWS S3 호환)
  • Firewall
  • Network
  • Load Balancers
  • Kubernetes
  • Databases
포스트 통계
지금 보고있는 포스트의 통계 데이터를 확인 해 보세요.
  • 총 조회수
    290
  • 최근 30일 조회수
    6
연관 포스트
코멘트 작성