PROXMOX - turnkey-debian-jenkins VS ubuntu22.04 template + jenkins
안녕하세요.
오늘 진행한 뻘짓을 남겨봅니다.
lxc 로 jenkins를 구축하고 활용하려고 확인해보니 PROXMOX 내에서 turnkey linux + jenkins 템플릿
을 제공하는걸 확인하였습니다.
오 편하게 다 되어있나보네 하고 해당 템플릿으로 진행하였습니다.
-----------------------------------------------------------------------------------------
시도 1)
- 메모리 : 2GB , Swap : 1GB
- 코어 : 4
결과 1)
- CPU 사용률 101% (??), 메모리 사용률 98~100%
- 콘솔 접근 불가
- 강제 종료.... ㅜㅜ
시도 2)
- 메모리 : 8GB, Swap : 4GB
- 코어 : 4
결과 2)
- CPU 사용률 0.05% , 메모리 사용률 3.65G ~ 3.7G (...? )
----------------------------------------------------------------------------------------
확인해보니, turnkey linux는 web으로 관리를 편하게 해주도록 제공되고 있어 12321 포트를 통해 web admin 페이지에 접근할 수 있더군요.
fail2ban 도 설치되어있고.. 그래서 메모리를 많이 먹나 싶어서 확인해보니 정말 그냥 순수하게 jenkins만 3.6G~3.7G 먹고 있네요.
jenkins 최소사양 메모리가 1GB 로 알고있지만, 힙메모리 사이즈를 미리 4G쯤으로 잡아둔게 아닐까 싶어 확인해봤습니다.
vi /etc/default/jenkins
음... 딱히 지정한건 없네요.
만약 아무런 설정 없이 jar 실행했다 쳐도, 기본이 총 메모리에 1/4 로 알고 있는데 혹시 4G 가까히 먹는게 이해가 되진 않네요.
뭐 어쨋든 세번째 시도로는 경량화 ubuntu 22.04 템플릿에 직접 jenkins 설치를 진행하였습니다.
----------------------------------------------------------------------------------------
시도 3)
- 메모리 : 8GB, Swap :4GB
- 코어 : 4
결과 3)
- CPU 사용률 0.02 ~ 0.03%
- 메모리 사용률 400M ~ 742M (!!)
---------------------------------------------------------------------------------------
Jenkins 를 설치하는 과정에서 최신 Jenkins 에 openJdk 11 에 진행하려 하니 설치가 되지 않아 17버전의 jdk 로 진행하였습니다.
차이가 있다면 jdk11과 jdk17일 듯 하네요.
두 CT 모두 Idle 상태에서 측정하여 비교한 결과입니다.
아무래도 이후 item을 추가 후 배포,(사용)시에도 메모리가 더욱 필요하기도 하고
jenkins 최신버전, 상대적 jdk 상위버전, 불필요한 기능 (fail2ban, web admin 등) 여러가지를 고려한 결과 turnkey linux + jenkins 보다는 수동이 더 깔끔한 것 같네요.
jdk 버전덕에 메모리관리가 잘되어 그런건진 자세히는 모르겠지만, 확실한건 turnkey-linux쪽은 편하긴 해도 잘 안하게 될 것 같습니다.
우선 jenkins 버전도 과거버전인것도 있고, 그냥 수동설치하는게 마음이 편하네요.
오늘 확실하게 알게 된건, 메모리를 부족하게 세팅하면 해당 컨테이너가 CPU 사용률이 100%를 초과하고 멈춰버린다는걸 알았습니다.
뻘짓은 여기까지고 아마 전문가분들이 메모리 차이에 대해 이유 혹은 정답을 적어주실거라 믿습니다.
그나저나 OKKY 에 zepinos 님이랑 닉네임이 같으시네요.
그게 접니다...;;; 제가 만든 기존에 없던 단어라 저 말고 쓰는 사람 못봤습니다.
불편하더라도 gitea 에 pipeline 같은건 어떨지요?
100메가 쓰는 앱을 10개로 나누몈 150메가 정도 써야되는데
자바면 800메가는 필요해지죠.
자바는 아무리 최적화해도 vm..이라..
유휴인 주제에 다른 앱은 못쓰게 만들죠..
무엇보다 msa 자체가 별로라...최근 옮겨다녔던 곳들 모두 msa 제거하고 멀티모듈로 다시 뭉치느라 고생하더라구요.
흠.. 도커를 쏘야하는게 문제 아닐까..
msa는 결과가 아니라 컨테이너라이즈를 위한 수단일 뿐이거든요
하나에 문제가 생겨도 전부 재시작, 하나 업데이트에 전부 재시작, 하나 성능 부족에 전체 프로세스 업스케일링을 하는게 아니라
고성능 요구하는 일부만 오토스케일하고, 하나 업데이트 해도 그 것만 롤링 업데이트 하고
그러기 위해 쪼개는거죠.
도커 같은거 안쓰면 jvm 나쁘지 않다는데는 저도 동의합니다.
근데 쿠버네티스를 하면 도커(컨테이너)를 고려하지 않을수가 없어요.
cmt alert