개발자공부일기
WSL2 .wslconfig 설정 및 적용 확인 방법 본문
Windows에서 WSL2를 사용하다 보면, 메모리나 CPU 사용량이 과도하게 올라가서 컴퓨터 전체 성능에 영향을 줄 때가 있습니다.
이럴 때 .wslconfig 파일을 사용하면 WSL2 전체의 자원 사용량을 직접 제어할 수 있습니다.
이번 글에서는 .wslconfig 파일 생성부터 적용 확인까지 과정을 정리해 보겠습니다.
1. .wslconfig 파일이란?
- 위치: C:\Users\<윈도우 사용자 이름>\.wslconfig
- 역할: WSL2 전역(Global) 설정 파일
- 특징: Ubuntu, Debian 같은 모든 WSL2 배포판과 Docker Desktop까지 설정이 한 번에 적용됩니다.
즉, 한 번 설정하면 내 컴퓨터에서 실행되는 WSL2 전체 환경에 공통으로 반영됩니다.
2. .wslconfig 파일 만들기
- 메모장 실행
- 아래와 같은 내용을 작성
[wsl2]
memory=4GB # 최대 메모리 4GB
processors=2 # CPU 코어 2개 사용
swap=2GB # 스왑 파일 2GB
localhostForwarding=true
3.다른 이름으로 저장 → 파일 이름을 .wslconfig 로 입력
- 파일 형식을 "모든 파일 (.)"로 설정
- 저장 경로: C:\Users\<윈도우 사용자 이름>\
이렇게 WSLCONFIG파일이라고 나와야 합니다.
주요 옵션
아래 옵션들을 필요에 맞게 조합해서 사용하면 됩니다.
옵션 | 설명 | 예시 |
memory | WSL2에 할당할 최대 메모리 용량 | memory=4GB |
processors | 사용할 CPU 코어 수 | processors=2 |
swap | 스왑 파일 크기 지정 | swap=2GB |
swapFile | 스왑 파일의 경로 지정 | swapFile=C:\\wsl\\wsl-swap.vhdx |
localhostForwarding | Windows ↔ WSL localhost 포워딩 여부 | localhostForwarding=true |
nestedVirtualization | 가상 머신 안에서 또 다른 VM 실행 허용 여부 | nestedVirtualization=true |
guiApplications | WSLg로 GUI 앱 실행 허용 여부 | guiApplications=true |
kernel | 커스텀 Linux 커널 이미지 지정 | kernel=C:\\wsl\\mykernel |
kernelCommandLine | 커널 부팅 파라미터 전달 | kernelCommandLine=sysctl.net.ipv4.ip_forward=1 |
pageReporting | Windows에 메모리 페이지 보고 여부 (메모리 최적화) | pageReporting=false |
debugConsole | 디버깅용 콘솔 활성화 | debugConsole=true |
공식 옵션 전체 목록은 여기 참고:
Microsoft Docs - wslconfig 설정
3. 설정 적용하기
.wslconfig 수정 후에는 WSL을 완전히 껐다 켜야 합니다.
Windows PowerShell에서 실행하세요:
wsl --shutdown
그 다음 Ubuntu 같은 배포판을 다시 실행하면 적용됩니다.
4. 적용 여부 확인하기
메모리 확인
WSL 안에서:
free -h
예시 출력:
total used free
Mem: 3.9G 1.2G 2.7G
→ 설정한 4GB 근처로 표시되면 정상.
total이 약 3.8GB로 설정한 4GB 근처로 나오네요
CPU 확인
nproc
출력값이 .wslconfig의 processors 값과 일치해야 합니다.
설정한대로 4가 나오고 있습니다.
Swap 확인
아까 메모리 확인할때 밑에 보면 swap이 있습니다. 설정한대로 0이네요
네트워크 포워딩 확인
ping 127.0.0.1
Windows에서 동작 중인 서버가 잘 응답하면 localhostForwarding=true가 적용된 것입니다.
5. 적용이 안 될 때 체크리스트
- .wslconfig 파일이 반드시경로에 있는지 확인
- C:\Users\<내 윈도우 계정>\.wslconfig
- 확장자가 .txt로 붙지 않았는지 확인
- 수정 후 wsl --shutdown을 실행했는지 확인