Java
-
서버의 물리 메모리가 4G인데여기에 java application의 -Xms(초기 Heap 메모리 size) , -Xm(최대 사용 가능한 Heap 메모리 size) 설정을 2G, 3G로 설정하며 성능테스트를 진행했던 내역을 정리해 보자. case (g1gc 사용 )-Xms2G -Xm2G-Xms3G -Xm3G -Xms2G -Xm2G성능테스트로 cpu 약 80%의 부하를 24시간 진행gc count, time 확인 시 특이사항 없음 / 최대 gc time은 약 20ms로 정상동작eden, survivor, old 영역 모두 gc가 정상적으로 이루어져 지속적으로 heap 증가 없음 -> 모두 정상 동작으로 보여서, 좀 더 서버의 자원을 최대한으로 끌어 써보기 위해서 heap 영역의 메모리 사이즈를 늘려봄 ..
[Java] Heap 영역 테스트서버의 물리 메모리가 4G인데여기에 java application의 -Xms(초기 Heap 메모리 size) , -Xm(최대 사용 가능한 Heap 메모리 size) 설정을 2G, 3G로 설정하며 성능테스트를 진행했던 내역을 정리해 보자. case (g1gc 사용 )-Xms2G -Xm2G-Xms3G -Xm3G -Xms2G -Xm2G성능테스트로 cpu 약 80%의 부하를 24시간 진행gc count, time 확인 시 특이사항 없음 / 최대 gc time은 약 20ms로 정상동작eden, survivor, old 영역 모두 gc가 정상적으로 이루어져 지속적으로 heap 증가 없음 -> 모두 정상 동작으로 보여서, 좀 더 서버의 자원을 최대한으로 끌어 써보기 위해서 heap 영역의 메모리 사이즈를 늘려봄 ..
2025.09.01 -
java21에 대해서 살펴보다가 virtual thread라는 개념을 알게 되었고그와 관련된 youtube 좋은 강연을 보게 되어서 해당 영상 내역을 정리해 보도록 하겠다. https://youtu.be/vQP6Rs-ywlQ?si=c21dH6bmhO0xiBB5 virtual threadjava 21에서 제공하는 신규 기능 jdk 21(LTS)에 추가된 경량 스레드OS 스레드를 그대로 사용하지 않고 JVM 내부 스케줄링을 통해서수십만~수백만 개의 스레드를 동시에 사용할 수 있게 해주는 기능 virtual thread 탄생 배경 신규 기능을 만들었다는 건 이전 기능에 개선사항이 존재했다는 것을 유추할 수 있다.어떠한 개선 사항이 존재하였었는지 알아보자. 전통적인 Java의 Thread java의 thre..
[Java] Virtual Thread 알아보기java21에 대해서 살펴보다가 virtual thread라는 개념을 알게 되었고그와 관련된 youtube 좋은 강연을 보게 되어서 해당 영상 내역을 정리해 보도록 하겠다. https://youtu.be/vQP6Rs-ywlQ?si=c21dH6bmhO0xiBB5 virtual threadjava 21에서 제공하는 신규 기능 jdk 21(LTS)에 추가된 경량 스레드OS 스레드를 그대로 사용하지 않고 JVM 내부 스케줄링을 통해서수십만~수백만 개의 스레드를 동시에 사용할 수 있게 해주는 기능 virtual thread 탄생 배경 신규 기능을 만들었다는 건 이전 기능에 개선사항이 존재했다는 것을 유추할 수 있다.어떠한 개선 사항이 존재하였었는지 알아보자. 전통적인 Java의 Thread java의 thre..
2025.08.25 -
앞에서 각각의 GC에 대해서 공부해보고 정리해보았다.어떤게 확연히 좋다거나 그런건 없고, 특정 상황에는 특정 GC가 더 적합하다는 있을 수 있을것 같다. G1GC : https://kkang-joo.tistory.com/216ZGC : https://kkang-joo.tistory.com/215 GC의 특징들을 나란히 비교해보자.그 과정에서 GC별 장단점을 더 잘 이해할 수 있을것 같다. ZGC vs G1GC 비교항목ZGCG1GC도입 시기JDK 11 (Experimental) / JDK 15~17 (Production Ready)JDK 7 (Experimental) / JDK 9부터 Default목표극단적으로 낮은 STW 지연 시간 (1~2ms 이하)낮은 지연 + 예측 가능한 GC 시간GC 방식Conc..
[Java] G1GC & ZGC앞에서 각각의 GC에 대해서 공부해보고 정리해보았다.어떤게 확연히 좋다거나 그런건 없고, 특정 상황에는 특정 GC가 더 적합하다는 있을 수 있을것 같다. G1GC : https://kkang-joo.tistory.com/216ZGC : https://kkang-joo.tistory.com/215 GC의 특징들을 나란히 비교해보자.그 과정에서 GC별 장단점을 더 잘 이해할 수 있을것 같다. ZGC vs G1GC 비교항목ZGCG1GC도입 시기JDK 11 (Experimental) / JDK 15~17 (Production Ready)JDK 7 (Experimental) / JDK 9부터 Default목표극단적으로 낮은 STW 지연 시간 (1~2ms 이하)낮은 지연 + 예측 가능한 GC 시간GC 방식Conc..
2025.08.12 -
G1GC는 garbage first GC라고 불리는데 -> Garbage만 있는 Region을 먼저 회수한다고 해서 붙여진 이름목표 -> Stop-The-World 시간이 짧고 예측 가능하게 하는 것Java9부터 디폴트 GC RegionG1 GC는 기존 힙 구조와 다르다전형적인 힙 구조는 Young, Old 영역을 명확하게 구분하였지만, G1 GC는 개념적으로 그들이 존재하나 일정 크기의 논리적 단위인 region으로 구분한다-XX:G1HeapResionSize : JVM 힙은 2048개의 region으로 나뉠 수 있으며, 해당 옵션을 통해 1MB ~ 32MB 사이로 지정될 수 있다이전에 존재하던 eden, survivor, old 영역 이외에도 새롭게 정의된 Humongous, Available/Un..
[Java] G1GC 알아보기G1GC는 garbage first GC라고 불리는데 -> Garbage만 있는 Region을 먼저 회수한다고 해서 붙여진 이름목표 -> Stop-The-World 시간이 짧고 예측 가능하게 하는 것Java9부터 디폴트 GC RegionG1 GC는 기존 힙 구조와 다르다전형적인 힙 구조는 Young, Old 영역을 명확하게 구분하였지만, G1 GC는 개념적으로 그들이 존재하나 일정 크기의 논리적 단위인 region으로 구분한다-XX:G1HeapResionSize : JVM 힙은 2048개의 region으로 나뉠 수 있으며, 해당 옵션을 통해 1MB ~ 32MB 사이로 지정될 수 있다이전에 존재하던 eden, survivor, old 영역 이외에도 새롭게 정의된 Humongous, Available/Un..
2025.08.08