Resource

    컨테이너에서 JVM은 왜 메모리 먹는 하마였을까?

    📍 Epilogue 간단한 JAR 애플리케이션을 가지고 쿠버네티스 파드 배포를 시도하였다 ! 그런데 컨테이너 상태가.. 엄청난 메모리 부족.. OOM Killed.. CrashLoopBackOff 상태 반복.. 파드 스펙 늘리고 다시 배포하니 정상 상태 ! 그래서 여기서 의문점 ❗️ JVM은 원래 메모리를 많이 잡아 먹는가? → 구조 때문? → 한 번 파헤쳐보자! ▪︎ JVM이란 ? 💡 JVM : 자바 가상 머신 (Java Virtual Machine) OS에 상관없이 자바 바이트 코드를 실행 시킬 수 있는 자바 가상 머신 자바 코드를 컴파일해서 얻은 바이트 코드를 OS가 이해할 수 있는 기계어로 바꿔 실행 ▪︎ 컴파일 과정 💡 .java → 소스 코드 (Source Code) .class → 바이트 코..

    리소스의 메모리와 CPU 자원 관리

    📍 Epilogue NCP의 NKS에서 프로젝트를 진행 중에 각자 팀원들에게 namespace를 할당해주었다. 어느 날 간단한 파드에 대한 스펙을 정해주고 생성을 시도하였더니 스케줄링 에러가 발생 원인을 확인해 보니 팀원 한 분께서 생성하신 파드에 어마 무시하게 자원을 할당해 놓으신 것.. 결국 노드에 남아있는 자원이 없어서 파드 배포 스케줄링 에러가 발생한 것이었다. 그래서 여기서 의문점 ❗️ 사용자 개인이 할당 가능한 자원에 제한을 걸어둘 수 있을까? → 개인 별로 리소스 관리가 가능한 네임스페이스에? ▪︎ Plan namespace에 대하여 자원 관리를 수행해보자 💡 Limit Range : 네임스페이스 내에 파드나 컨테이너당 리소스 소비를 한정하는 제약 조건을 제공 ▪︎ Namespace에 대한 ..