java
-
spring-boot actuator의 메트릭 정보와 grafana dashboard(+prometheus)를 이용해서 다양한 정보를 모니터링할 수 있다. 해당 정보 중에서 오늘은 GC 관련된 dashboard를 확인해 보자. grafana의 dashboard를 직접 작성하지 않고 이미 작성된 유용한 내용들을 import해와서 사용할 수 있는데오늘은 아래 dashboard에서 제공하는 내용을 살펴보자.https://grafana.com/grafana/dashboards/11378-justai-system-monitor/ 각각 그래프를 나타내기 위한 지표는 아래와 같다GC count : jvm_gc_pause_seconds_count..
[Java] GC 관련 metric 모니터링spring-boot actuator의 메트릭 정보와 grafana dashboard(+prometheus)를 이용해서 다양한 정보를 모니터링할 수 있다. 해당 정보 중에서 오늘은 GC 관련된 dashboard를 확인해 보자. grafana의 dashboard를 직접 작성하지 않고 이미 작성된 유용한 내용들을 import해와서 사용할 수 있는데오늘은 아래 dashboard에서 제공하는 내용을 살펴보자.https://grafana.com/grafana/dashboards/11378-justai-system-monitor/ 각각 그래프를 나타내기 위한 지표는 아래와 같다GC count : jvm_gc_pause_seconds_count..
2025.04.02 -
기존에 잘 동작하던 서비스의 java version을 upgrade시키고 난 이후에 에러가 발생하게 되었다. java 8 -> java 11 에러 내역 버전 업 이후에 thread 개수가 너무 많이 증가하여 out of memory 발생 Caused by: java.lang.OutOfMemoryError: unable to create native thread: possibly out of memory or process/resource limits reached at java.base/java.lang.Thread.start0(Native Method) at java.base/java.lang.Thread.start(Unknown Source) at java.base/java.util.concurren..
[Java] ForkJoinPool 에러 발생 in Java11기존에 잘 동작하던 서비스의 java version을 upgrade시키고 난 이후에 에러가 발생하게 되었다. java 8 -> java 11 에러 내역 버전 업 이후에 thread 개수가 너무 많이 증가하여 out of memory 발생 Caused by: java.lang.OutOfMemoryError: unable to create native thread: possibly out of memory or process/resource limits reached at java.base/java.lang.Thread.start0(Native Method) at java.base/java.lang.Thread.start(Unknown Source) at java.base/java.util.concurren..
2024.03.11 -
ForkJoinPool java 7부터 사용가능한 Java Concurrency Framework 분할 정복(Divide and Conquer) 알고리즘과 유사한 구조 동일한 작업을 여러 개의 Sub Task로 분리(Fork)하여 각각 처리하고, 이를 최종적으로 합쳐서(Join) 결과를 만들어내는 방식 -> 대규모 작업을 빠르게 처리하는 데 도움 스레드풀의 큐(inbound queue)에 작업이 할당되면 pool 내의 스레드들이 해당 작업을 가져가서 수행한다. 각 스레드들은 다시 본인의 작업 큐(work queue)를 가진다. 각 스레드들의 작업 큐는 deque 자료구조를 가진다 (작업 스레드는 한쪽에서 꺼내 쓰고, 다른 스레드가 작업을 stealing 할 때 다른 한쪽을 사용) 작업 스틸링(Work ..
[Java] ForkJoinPool이란 (ParellelStream)ForkJoinPool java 7부터 사용가능한 Java Concurrency Framework 분할 정복(Divide and Conquer) 알고리즘과 유사한 구조 동일한 작업을 여러 개의 Sub Task로 분리(Fork)하여 각각 처리하고, 이를 최종적으로 합쳐서(Join) 결과를 만들어내는 방식 -> 대규모 작업을 빠르게 처리하는 데 도움 스레드풀의 큐(inbound queue)에 작업이 할당되면 pool 내의 스레드들이 해당 작업을 가져가서 수행한다. 각 스레드들은 다시 본인의 작업 큐(work queue)를 가진다. 각 스레드들의 작업 큐는 deque 자료구조를 가진다 (작업 스레드는 한쪽에서 꺼내 쓰고, 다른 스레드가 작업을 stealing 할 때 다른 한쪽을 사용) 작업 스틸링(Work ..
2023.12.21 -
Java8에서의 변경된 내역들을 정리해 보도록 하겠습니다 PermGen 영역의 제거 ( to meta space ) Lambda Expression Stream API Interface ( default, static method ) Optional java.time 패키지 나즈혼( javascript engine ) PermGen 영역의 제거 Permanent Generation - Class의 Meta정보나 Method의 Meta정보, Static변수와 상수 정보들이 저장되는 공간, 흔히 메타데이터 저장 영역 위와 같은 Exception은 Heap의 구성 중, Permanent Generation의 memory가 부족한 현상입니다 PermGen 영역은 GC가 되지 않으며 클래스 메타 데이터를 저장하는..
[JAVA] Java8 변경 사항 ( java7 to java8)Java8에서의 변경된 내역들을 정리해 보도록 하겠습니다 PermGen 영역의 제거 ( to meta space ) Lambda Expression Stream API Interface ( default, static method ) Optional java.time 패키지 나즈혼( javascript engine ) PermGen 영역의 제거 Permanent Generation - Class의 Meta정보나 Method의 Meta정보, Static변수와 상수 정보들이 저장되는 공간, 흔히 메타데이터 저장 영역 위와 같은 Exception은 Heap의 구성 중, Permanent Generation의 memory가 부족한 현상입니다 PermGen 영역은 GC가 되지 않으며 클래스 메타 데이터를 저장하는..
2023.11.25