mac에서 발생하는 문제
"Cannot invoke 'jdk.internal.platform.CgroupInfo.getMountPoint()' because 'anyController' is null"
다음과 같은 에러가 발생합니다.
Mac Docker Desktop 환경
OpenJDK 17 slim 이미지 사용
로컬에서 진행했을 때
gpt에게 물어봤을 때와 stackoverflow를 확인해봤습니다.
이 에러는 Java 17 이상에서,
JVM이 리눅스 컨테이너(CGroup) 안에서 리소스(CPU, 메모리 등) 정보를 가져오려고 할 때,
Mac OS에서는 리눅스 CGroup 시스템이 아예 존재하지 않아서 발생
그리고 문제를 해결하기 위한 방법으로 프로메테우스를 비활성화하라는 답변을 주었는데, 해결방안을 적용해봐도 해결할 수 없었습니다.
그래서 생각한게 리눅스 컨테이너 이미지인 slim 버전에 대해서 생각하게 되었고, Dockerfile의 이미를 교체했을 때
FROM eclipse-temurin:17-jdk
정상적으로 실습을 수행할 수 있었습니다.
답변보다는 mac에서 진행할 경우 다음과 같은 문제로 머리아플 분들을 위해 작성했습니다.
回答 2
0
오오오오 Anfield 님 안녕하세요!!
다른 수강생분들을 위해 넘넘 친절한 내용 작성해주셔서 감사드립니다!!
해당 내용을 교재에도 추가해두도록 하겠습니다!!
호옥시 2주차 몇번째 강 수강하시면서 발생하셨던 문제였는지 여쭤봐도 될까요?_?
0
안녕하세요, 인프런 AI 인턴입니다. Anfield님.
Mac 환경에서 Docker를 사용하면서 OpenJDK 17 slim 이미지에서 발생하는 에러에 대해 원인과 해결 방안을 잘 정리해 주셨네요. 문제의 핵심은 Mac OS에서 리눅스의 CGroup 시스템이 존재하지 않아 리소스 정보를 제대로 가져오지 못하는 데 있습니다. 이와 관련해 추가적인 해결책을 제공해 드리고자 합니다.
원인 분석 요약
- Java 17 이상에서는 JVM이 리눅스 컨테이너 내에서 리소스 정보를 가져오려 함.
- Mac OS에서는 리눅스 CGroup 시스템이 없어 문제가 발생.
해결 방안
이미지 교체: 문제가 발생한 slim 이미지를
eclipse-temurin:17-jdk와 같이 더 풀 버전의 이미지로 교체하면, 해당 문제를 회피할 수 있습니다. 이 방법은 기본적으로 더 많은 종속성을 내장하고 있어, 환경적 차이로 인한 문제를 해결합니다.프로메테우스 비활성화: 만약 프로파일링 도구나 메트릭 수집을 위해 특별히 활성화된 것이 있다면, 불필요한 경우 비활성화하는 것도 하나의 방법입니다.
Java 옵션 설정: 혹시 더 경량화된 환경을 고집하신다면, JVM 옵션으로 CGroup 관련 기능을 비활성화할 수 있습니다.
-XX:+UnlockExperimentalVMOptions -XX:+UseContainerSupport옵션을 추가하여, Java의 컨테이너 인식 기능을 조절할 수 있습니다.
관련 참고자료
이러한 정보가 비슷한 문제를 겪고 있는 다른 분들에게도 도움이 되길 바랍니다. 저도 도움을 드리고자 했으며, 문제 상황을 다른 학습자에게도 잘 설명해 주셔서 감사합니다. 😊
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
조회속도 개선에서 더 개선하는 방법이 궁금합니다.
0
28
2
Build 관련 문제 (테스트 관련 문제)
0
43
2
인덱스 관련 질문 있습니다.
0
68
2
비관적 락 구현 방식 문의 건
0
70
2
외부 api 처리 방안에 대하여 궁금한 점이 있습니다.
0
89
2
네임드 락 사용 시 커넥션 풀을 분리하는 방법에 대한 질문
0
83
2
이벤트) 백엔드 기술면접 실전문제집
0
102
2
로컬에서 테스트 한 결과를 이력서에 써도 괜찮을까요?
0
131
2
데드락 발생 시, 외래 키를 제거하는 방법 관련 질문
0
87
2
Redis 캐싱을 도입하는데 db조회와 성능이 차이가 거의 없습니다.
0
112
2
k6 부하테스트 중인데 개선 전 성능이 너무 안나와서 고민
0
130
2
강의와 성능수치 비교
0
103
2
13강 강의 뒷부분의 과제 안내부분은 어디있나요?
0
51
2
이벤트 참가자 수 증가 후, save 메서드 호출 코드 질문
0
66
2
[수업 자료 질문] Cache Aside의 특징 문의
0
86
2
[수업자료 문의] RedisTemplate으로 SETNX 시 리턴값 문의
0
81
2
멀티스레드 상황인데 currentParticipants 가 AtomicInteger가 아닌 이유?
0
88
3
클라우드 환경 배포시 부하 테스트 방식에 대하여
0
137
2
k6 dashboad 안나오는 상
0
113
2
2-4 도커 빌드 에러가 계속 납니다.
0
297
2
AWS EC2에 도커 컨테이너가 동작하지 않을 때 확인 해야하는 것
0
115
2
성능 측정시
0
111
2
API 별 실행 쿼리 모니터링 구현 질문 있습니다.
0
85
2
트랜잭션 격리성 설계도 어필포인트로 가져갈 수 있을까요?
1
68
2

