라즈베리파이에서 있는 git 저장소를 Gitlab으로 웹브라우저에서 눈에 보기 좋은 모습으로 관리하고 싶어서 설치해보았다. 결론부터 말해서 Gitlab의 최소 요구 메모리가 4GB 인데 1GB 남짓하는 라즈베리파이2,3에서는 버겁다.

Gitlab 라즈베리 설치방법 대로 gitlab-ce 설치하고 reconfigure까지 마치고, 초기 설정 화면까지 넘어가는데 한나절이 걸렸는데 실망스럽다. 가용 메모리는 27MB만 남았고, 라즈비안 기본 swap 크기인 100MB는 거의 다쓰고 있다. top 으로 확인해보면 git 계정으로 bundle 명령어로 뭘하는 건지 CPU usage도 굉장히 높다. 그래서 초기 설정 화면 접속이 잘 되지 않았다. 여러번 새로고침을 누른 끝에 겨우 접속이 되었다. 그리고 ssh 접속도 잘 되지 않았다. cpu와 메모리를 대부분 점유하고 있어서 제대로 동작이 되지 않는 것이다.

이래선 Gitlab을 쓸 수가 없다.

topinfo

패스워드 설정 버튼을 눌러도 한참 응답이 없다가 시간초과 페이지로 넘어가 버린다.

초기 설정 화면

Gitlab을 써보고 싶어서 Gitlab 최소 요구사항을 다시 꼼꼼히 읽어보았다. 코어 개수는 문제가 딱히 없어보이는데, 메모리가 문제다. 1GB RAM + 3GB swap 조합이 최소 요구사항이니까, 현재 100MB로 설정되어 있는 swap를 조절해본다.

유니콘 워커 개수도 1GB RAM에선 2개를 권고 하고 있으니, 이것도 바꿔본다.

유니콘 개수를 조절하고 swap 크기를 늘려서 다시 시도

swap 크기 조절

라즈비안 기본 swap 크기는 100MB로 아래 파일에 CONF_SWAPSIZE 변수에 설정되어 있다. 2GB로 변경하고 서비스를 재시작한다.

$ cat /etc/dphys-swapfile
...
CONF_SWAPSIZE=100  # 변경 CONF_SWAPSIZE=2048
...

$ sudo systemctl restart dphys-swapfile.service

유니콘 개수 조절 /etc/gitlab/gitlab.rb에서 worker_timeoutworker_processes 값을 바꾸고 주석을 지운다. 그리고 다시 sudo gitlab-ctl reconfigure

unicorn['worker_timeout'] = 60
###! Minimum worker_processes is 2 at this moment
###! See https://gitlab.com/gitlab-org/gitlab-ce/issues/18771
unicorn['worker_processes'] = 2

잘되긴 하네

swap을 늘려줬더니 시스템에 여유가 생겼는지 지연시간 없이 초기 비밀번호 화면도 바로 접속이 되고 계정 만들 때도 문제 없었다. topinfo를 다시 살펴보면 가용 메모리는 25MB 수준이지만 swap은 1.7GB 여유가 있다. 큰 문제는 없는 것 같으니 당분간 써봐야 겠다.