1 minute read

2022 년 새해복 많이 받으시고,,,

WSL 리소스 조정기 기록

개요

윈도우서 도커를 사용하기 위해 WSL을 이용하도록 환경을 구성하였다. 그러자 서브시스템에서 사용하는 메모리와 CPU자원이 어마어마 하다… 무려 12기가를 잡아 먹는다.. 이번에 램을 시킨 이유도 이러한 이유에서다..

지금 집 피씨를 포맷하고 ㅠ 다시 셋팅중이라…

프로세스를 확인하면 Vmmem 이 엄청난 리소스를 잡아 먹고 있는걸 알수 있다.

이 문제를 해결하는건 비교적 간단한데 WSL 설정 파일을 하나 생성해 사용할 리소스를 직접 명시해 주면 된다.

1. WSL 확인

cmd 에서 
wsl -l -v
C:\Users\ashgh\docker_file>wsl -l -v
  NAME                   STATE           VERSION
* Ubuntu-20.04           Running         2
  docker-desktop-data    Running         2
  docker-desktop         Running         2

2. WSL 종료

cmd 에서
wsl -t {name} --shutdown
wsl -t Ubuntu-20.04 --shutdown
wsl -t docker-desktop-data --shutdown
wsl -t docker-desktop --shutdown

3. WSL config 파일 생성

종료후 아래 경로에 새파일을 만들어 아래와 같이 작성한다.

cd C:\Windows\system32

PS C:\Windows\system32> notepad $env:USERPROFILE\.wslconfig

4. config 파일 설정

나는 8기가 정도만 사용하도록 하였다. 추가 램이 오면 다시 12~16기가로 변경할 예정

나도 es에 16기가 주고 사용하고 싶다..

[wsl2]
#kernel=<path>              # An absolute Windows path to a custom Linux kernel.
memory=8G              	    # How much memory to assign to the WSL2 VM.
#processors=<number>        # How many processors to assign to the WSL2 VM.
#swap=<size>                # How much swap space to add to the WSL2 VM. 0 for no swap file.
#swapFile=<path>            # 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).

# <path> entries must be absolute Windows paths with escaped backslashes, for example C:\\Users\\Ben\\kernel
# <size> entries must be size followed by unit, for example 8GB or 512MB

귀찮고 번거롭다.. 그냥 돈많으면 짱이다 ㅠㅠ,,,,

기타

아 리스타트후 그리고 메모리 힙사이즈를 다시 늘려주지 않으면 es 재기동시 아래와 같은 에러가 발생한다. 이건 뭐 다 알것같은 에러니까,,

max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

이러면 다시 wsl 환경에서

영구적인 적용을 위하여 /etc/sysctl.conf 파일의 vm.max_map_count 값을 수정한다.

$ sudo vim /etc/sysctl.conf 실행 후 아래 내용 추가 혹은 수정

vm.max_map_count=262144

파일 수정만으로 라이브 시스템에 바로 적용되지 않기 때문에 라이브 시스템의 경우 아래 명령어로 적용 가능

$ sudo sysctl -w vm.max_map_count=262144

Categories:

Updated: