[Docker] Windows 환경에서 컴퓨터 느려지는 현상 해결법(feat. memory)

MINJI·2024년 11월 8일

Docker, Kubernetes(K8s)

목록 보기
2/4

팀원들과 프로젝트를 수행하던 중, 시각화 BI툴인 Superset 설치를 위해 Docker를 다운받고 이미지를 받아 container로 Superset을 돌리려고 했습니다.

근데!ㅠㅠ😵 자꾸 마지막 단계에서 원하는 화면의 모습이 아니라 이미지들이 다 날라간 화면이 보여서 알아보던 중 노트북 메모리 문제가 가장 유력하다는 결론을 내렸습니다.... 그리고 Docker가 실행되면 노트북도 엄청나게 느려졌습니다.

참고로 제 노트북 RAM은 8GB,,,

Docker Desktop은 Windows 환경에서 WSL2(Windows Subsystem for Linux)와 함께 작동하는데, 기본적으로 WSL이 사용할 수 있는 메모리 양에는 제한이 없어서 메모리를 과도하게 사용할 수 있습니다.
이를 제한하면 Docker가 사용하는 메모리를 관리하여 컴퓨터 속도 저하 문제를 줄일 수 있습니다.

⭐ wsl 최대 memory 제한 걸기

1. WSL 설정 파일 생성/수정

  • C://Users/<사용자명>/.wslconfig 파일 찾기

  • 해당 파일이 없으면 새로 만들기!

  • 기존 파일 내용에는 memory=12GB 로 명시되어 있다

  • WSL에 사용할 메모리와 CPU의 상한을 수정해줘야함

    [wsl2]
    memory=4GB   # 메모리 제한 예시
    processors=2 # CPU 제한 예시
    swap=0       # 디스크 I/O 감소

주의점⚠️
다만, swap=0 설정을 사용하면 RAM이 부족할 때 프로그램이 강제로 종료될 수 있으므로, WSL 2의 메모리 제한을 충분히 할당하는 것이 좋습니다. memory=4GB처럼 적절한 메모리 양을 지정해 주는 것이 중요합니다.
이 설정은 Docker를 사용할 때 시스템 성능 문제를 해결하는 데 유용할 수 있지만, RAM이 부족할 때 종료 위험이 있음을 기억해 두면 좋습니다.

Windows의 Docker 메모리 할당 가이드라인

  1. Docker 컨테이너 요구 사항 고려
    일반적으로 Apache Airflow, PostgreSQL, MySQL, 웹 애플리케이션 같은 컨테이너들은 최소 4GB 이상이 필요할 수 있습니다.
    무거운 애플리케이션, 대규모 데이터 분석 작업을 위한 컨테이너를 실행할 경우 8GB 이상이 필요할 수도 있습니다.
  1. 시스템 메모리의 50-70% 할당
    시스템 메모리가 16GB라면, Docker에 8GB 정도 할당하는 것이 좋습니다.
    시스템 메모리가 8GB라면, Docker에 4GB 할당하는 것이 적당합니다. 이 경우 너무 많은 메모리를 할당하면, Windows의 다른 작업에 영향을 줄 수 있습니다.
  1. 일반적인 추천 기준
    8GB 이상의 메모리가 있는 시스템: Docker에 최소 4GB 이상 할당.
    16GB 이상의 메모리가 있는 시스템: Docker에 8GB 이상 할당.
    32GB 이상의 메모리가 있는 시스템: Docker에 16GB까지 할당 가능.

2. Docker 및 WSL 재시작

  • 설정을 적용하기 위해 Docker와 WSL을 재시작해야 합니다.
wsl --shutdown

[출처]
https://velog.io/@dailylifecoding/docker-desktop-make-my-computer-slow

0개의 댓글