상세 컨텐츠

본문 제목

MacOS 도커에서 리눅스 컨테이너가 느린 경우

MacOS & iOS

by 아이쓰 2024. 7. 12. 15:29

본문

반응형

남는 맥미니에서 도커로 사이트를 하나 띄웠는데 백엔드가 너무 느리다.
프론트는 vue로 만들어진 정적파일이고, 백엔드는 golang으로 빌드된 실행파일이다.
백엔드에서 API응답이 늦다.

기존에 리눅스에서 서비스되던것이라 다른점은 호스트가 MacOS라는것.

백엔드는 느릴만한 로직이 없고.. 기존에도 빠르게 동작했었다.

결국 답은 찾았는데, 백엔드는 임베디드 데이터베이스를 쓰는데 파일을 로컬에 저장한다.
이 디비를 MacOS에 두고 도커에 마운트해 쓰는데 맥의 경우 파일시스템 동기화에 문제가 있는지 느리다고 한다.

해결방법은 volume 마운트 설정에 :delegated를 붙이라는것.
그렇게 하면 파일시스템 동기화를 비동기로 하면서 좀더 빨라진다고 한다.

version: '3.7'

services:
  app:
    build: .
    container_name: mysite-net
    ports:
      - "8003:80"
    volumes:
      - /Volumes/data/www/mysite.net/db_data:/data/db_data:delegated

실제로 이렇게 설정한 후 다시 돌리니 많이 빨라졌다.

또 문제가 생기면 도커를 포기하는 방법밖에...

관련글 더보기