gcp 메모리 부족과 swap 설정

김상연·2023년 2월 3일

배포와 서버

목록 보기
8/8

도커 컨테이너 하나가 실행중인 gcp 프리티어 인스턴스에 추가로 컨테이너 몇개 실행할 생각이었다.

포트폴리오 사이트에 공개한 프로젝트들을 접속 해 볼 수 있도록 배포 해 두려고 프론트, 백엔드, DB 총 3개의 서버를 각각의 컨테이너로 돌리려고 했는데.. 프론트 하나만 띄워봤는데 바로 안된다. 포트도 열어줬는데(방화벽 설정) 왜 안될까?

근데 한참 기다리니까 접속이 간신히 되긴 한다. 그래서 메모리가 부족한가 했더니 아마도 그런 것 같다. 관련된 검색으로 swap메모리를 활용한다는 블로그를 발견했다.

https://howoni.com/view/pyt/1

이분은 빌드 시점에 메모리 부족을 대비한 것이었는데, 나처럼 도커 컨테이너를 유지하는데도 스왑메모리 설정이 유효할까?

=======================================================

1일 경과

=======================================================

왜인지 모르겠는데 하루 지난 오늘 접속하니 엄청나게 빠르다. 어제 컨테이너를 실행 하자마자 이렇게 빨랐다면 나는 아무 생각 없이 다른 백엔드나 DB 컨테이너도 바로 실행시켰을 것 같다.

기왕 알아보기로 한거 도커 컨테이너의 사용 리소스 등 필요한 것들을 살펴봤다.

docker stats --format "table {{.Name}}\t{{.Container}}\t{{.CPUPerc}}\t{{.MemUsage}}"
NAME          CONTAINER      CPU %     MEM USAGE / LIMIT
bulse_front   a01ea1d88701   0.07%     454.5MiB / 973.3MiB
v2.2          aaadc1781058   0.00%     73MiB / 973.3MiB

sy@deploy-test:~$ free -mh
              total        used        free      shared  buff/cache   available
Mem:           973M        764M         65M        1.1M        144M         66M
Swap:            0B          0B          0B

sy@deploy-test:~$ df -h
Filesystem      Size  Used Avail Use% Mounted on
udev            465M     0  465M   0% /dev
tmpfs            98M  1.1M   97M   2% /run
/dev/sda1        29G  6.9G   23G  24% /
tmpfs           487M     0  487M   0% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           487M     0  487M   0% /sys/fs/cgroup
/dev/loop1       50M   50M     0 100% /snap/snapd/17883
/dev/loop4       56M   56M     0 100% /snap/core18/2667
/dev/sda15      105M  4.4M  100M   5% /boot/efi
/dev/loop5       50M   50M     0 100% /snap/snapd/17950
/dev/loop3      335M  335M     0 100% /snap/google-cloud-cli/99
/dev/loop6       56M   56M     0 100% /snap/core18/2679
/dev/loop0      337M  337M     0 100% /snap/google-cloud-cli/101
tmpfs            98M     0   98M   0% /run/user/1001

일단 메모리 사용이 엄청 높아서 놀랐다. express + ejs로 만든 동적 웹사이트가 아래에 73mb를 차지하는데 비해 엄청나게 많은 리소스를 먹고있다. 도대체 왜? 라우터가 더 많고, 단순 코드 양도 많긴 하지만 왜 저렇게 많이 먹나 모르겠다.

메모리 점유 상태를 보면 available이 66mb로 백엔드 컨테이너를 실행 하기엔 무리일 것 같다. 지금 상황에 먼저 해 볼 수 있는 것은 프론트엔드 컨테이너의 메모리 사용량을 줄일 수 있는지 살펴보는 것 같다.

근데 react app container optimized memory limit 비슷한 느낌으로 암만 검색해도 관련 내용이 없다. 빌드 시점의 높은 메모리 사용에 관해서는 글이 있지만... 그래서 스택오버플로에 질문을 남겨봤다.

profile
리눅스와 컴퓨터 프로그래밍

0개의 댓글