[코딩][mutagen] 뮤타겐 도커 퍼포먼스 캐싱 기능 추가, Docker Performance

프로그래밍/Docker

[코딩][mutagen] 뮤타겐 도커 퍼포먼스 캐싱 기능 추가, Docker Performance

SSoL 쏠 2023. 10. 6. 10:55
반응형

참고

https://madewithlove.com/blog/improving-docker-performance-for-macos/

 

Improving Docker performance for macOS

Improving the performance of Docker for Mac, Laravel Sail with NFS mounts, Laravel Sail and Mutagen. Here is a handy guide on this matter.

madewithlove.com

https://www.cncf.io/blog/2023/02/02/docker-on-macos-is-slow-and-how-to-fix-it/

 

Docker on MacOS is slow and how to fix it | Cloud Native Computing Foundation

Community post by Paolo Mainardi originally published on Paolo's personal blog At the time of writing, the only viable option to have a decent performance and a good DX are: Docker engine…

www.cncf.io

 

원인

MacOS와 Windows의 Docker 엔진에는 Linux 커널이 필요하다. 

이는 도커가 Linux 커널의 네임스페이스 기능을 사용해 프로세스를 분리하여 실행하는 구조로 이뤄져 있기 때문이다.

그래서 MacOS, Windows는 가상OS를 돌려 Linux기반으로 컨테이너를 실행한다

가상OS 특성상 I/O 퍼포언스가 원래 낮다.

위 링크들을 확인해 보면 도커 데탑 가상화 킷을 최근에 변경하며 더 느려졌다.

특히 PHP는 스크립트 파일을 일일이 디스크에서 불러와 인터프리트하는 구조 이기에 영향을 더 크게 받는다.

해결

Docker v4.3.1 이상으로 업데이트 (확장 프로그램 기능 사용)

https://mutagen.io/documentation/docker-desktop-extension#installation

위 링크에 따라 도커 확장프로그램 mutagen 설치 

mutagen은 디스크에 있는 개발 파일을 캐싱하고 컨테이너가 도커에 파일을 요청하면 중간에서 파일을 넘겨주는 역할을 한다.

설치 후, 로컬의 작업 디렉토리를 모두 캐싱한 후 (10~15분 소요)

 

아래 명령 실행 - 도커가 mutagen 캐시를 이용하게 하는 명령

docker context use desktop-linux-mutagen

순서

docker context use desktop-linux-mutagen

후 도커 컨테이너 실행

used by가 위 이미지처럼 되면 성공

한계

해당 프로그램은 1개 디렉토리 캐싱만 가능하다 

2개 부터는 라이센스 구매해야 한다.

효과

메인페이지 : 50초 → 913밀리초

반응형