METASPACE

metaspace 실험 전 공부할 개념들

1. JVM Metaspace 기본

- used, committed, reserved, max 차이

Metaspace used 120930K, committed 122496K, reserved 221184K

- Class 영역과 Non-Class 영역

N번 봐야할 글

- 클래스 로딩·언로딩 조건

- ClassLoader가 살아 있으면 클래스가 해제되지 않는 이유

- MaxMetaspaceSize 상향이 즉시 RSS 증가를 뜻하지 않는 이유

2. 측정 도구 역할 구분

- Actuator/Prometheus: 전체 Metaspace의 시계열과 피크 확인

- jstat: Actuator가 열리기 전 기동 구간 관찰

- jcmd VM.metaspace: ClassLoader별 사용량 확인

- jcmd VM.classloader_stats: ClassLoader별 클래스 개수 확인

- 패키지별 클래스 개수는 메모리 사용량 자체가 아니라 후보 선정용 대리지표라는 점

3. 실험 설계

- 한 번에 변수 하나만 변경

- A/B/C/D 빌드 관계

- 동일한 콜드 스타트와 워밍업 조건

- 한 번의 수치 대신 최소 3회 반복

- 평균뿐 아니라 최대값과 중앙값 기록

- 128MB 상한에 잘린 측정값은 실제 요구량보다 작을 수 있다는 점

4. 변경 대상 이해

Layout Dialect:

- Groovy가 왜 전이 의존성으로 포함되는지

- layout:decorate, layout:fragment를 무엇으로 대체할지

- 대체 후 템플릿 중복과 유지보수성이 나빠지지 않는지

OpenFeign:

- Feign client별 child ApplicationContext가 무엇을 생성하는지

- 클래스는 같은 ClassLoader에 한 번 로딩된다는 점

- RestClient 전환 시 오류 처리, 인증, multipart, timeout을 어떻게 보존할지

- Spring Cloud BOM 제거가 가능한지

comments 2
아배고파#39
우와 참고할게요~ 좋아요
아적당히배불러#40
저녁을 드십시오
댓글 작성
이름·비밀번호는 이 댓글에만 사용됩니다