개발블로그인데 너무 영화만 보고 리뷰만 남기는게 아닌가. 그간 배운것도 있는데, 간단하게 정리만 하는 것도 도움이 될 것 같다.

 

QoS Class

쿠버네티스 클러스터의 파드의 서비스 품질을 결정한다. 종류에는 Guaranteed/Burstable/BestEffort 가 존재한다. deployment 쪽에 할당된 컨테이너 리소스 설정인, resources.request/resources.limit 에 대한 값을 기준으로 QoS 클래스가 결정된다. 노드 내에 N개의 파드가 떠 있을 때 리눅스 oomkiller 에 의한 oomkilled 가 되는 순서를 QoS 클래스로 결정지을 수 있다. 이 이슈는 k8s overcommit 내용과도 연관이 있다.

- https://kubernetes.io/ko/docs/tasks/configure-pod-container/quality-service-pod/

- https://docs.oracle.com/cd/E56343_01/html/E53877/ipqos-config-planning-14.html

 

Native Memory

JDK8 에서 Non heap space 영역인 metaspace 영역이 추가되었다. Native memory 의 영역인데 해당 영역은 힙덤프를 뜬다고 한들 쉽게 볼 수 없다. 관련해서 JVM option 으로 -XX:NativeMemoryTracking=(detail | summary) 옵션 등으로 파악해야한다.

- https://docs.oracle.com/javase/8/docs/technotes/guides/vm/nmt-8.html

 

Spring docs

@Lazy, @Lookup 애노테이션을 공부했는데, 실무에서 써보지 않아서 잘 모르겠다. 도큐먼트에선 장점이 기술되어 있지만 해보질 않으니 장점이 와닿지 않았다.

- @DependsOn 은 외부 라이브러리 의존성끼리 의존관계가 있어야 하는 경우에 사용할 수 있다.

- @Configuration 안의 @Bean 생성 순서는 코드가 작성된 순서이다. 알파벳순서는 아니다.

- @Autowired 를 setter 주입으로 처리할 시, 순환참조 에러가 발생한다. application.yaml 에 spring.main.allow-circular-references=true 로 하면 발생하지 않는다. 하지만 생성자 주입에 대한 순환참조는 해당 설정을 하더라도 에러가 발생한다.

Posted by doubler
,