목록2024/09/27 (7)
Technical NOTE
ZGC 방식에 대한 내용을 정리해보았습니다. ZGC의 경우 Java 17에서 본격적으로 사용되기 시작하다보니, 아직 공공쪽에는 레퍼런스를 찾을 수 없는 상태인데요,그래서 다른 싸이트를 참조해서 내용을 정리해봤습니다. 정리하지만,G1 GC의 경우에는 힙메모리 4G 이상에서 사용할 것을 권장하고 있는데요,ZGC의 경우에는 힙메모리 10G 이상인 경우 설정하는 것이 좋을 것으로 판단됩니다. 아래는 ZGC에 대한 일반적인 기술 특징과 적합환 환경에 대한 기술적인 내용이니 참고하시기 바랍니다. 1. ZGC 방식의 일반적인 특징 - Java 11 에서 실험적인 기능으로 추가되었고, Java 15버전 이후에 본격적으로 반영된 후 17버전에도 기능이 추가되어 있음 - ZGC는 대용량 메모리 관리시 정지시간을 최소화하기..
G1 GC (Garbage First Garbage Collector)는 Java 7부터 도입된 Garbage Collector로, 대용량 힙 메모리를 효율적으로 관리하는 데 중점을 둔 저지연(低遲延) GC입니다. G1 GC는 Stop-the-world (STW) 시간을 줄여 애플리케이션의 응답성을 높이고, 힙 메모리를 효과적으로 관리하여 메모리의 단편화 문제를 줄이는 것을 목표로 설계되었습니다.G1 GC의 주요 특징Region 기반 힙 관리:G1 GC는 전체 힙 메모리를 고정된 크기의 여러 개의 영역(Region)으로 나눕니다. 각 Region은 1MB에서 32MB 사이의 크기를 가지며, Eden, Survivor, Old 영역의 역할을 할 수 있습니다.이로 인해 연속된 메모리 블록을 할당해야 하는 기..
Tomcat Valve는 Apache Tomcat의 핵심 기능 중 하나로, 특정 요청이나 응답에 대해 처리 로직을 추가하거나 필터링을 수행할 수 있도록 해주는 메커니즘입니다. Valve는 Tomcat의 request-response 사이클에서 필터와 유사하게 동작하지만, 컨텍스트(Context)와 호스트(Host)에 종속적으로 동작할 수 있는 점에서 더 강력하고 Tomcat 서버에 밀접하게 통합되어 있습니다.Valves는 주로 로그 기록, 보안 처리, 요청 필터링 등의 용도로 사용되며, Tomcat의 server.xml 파일에 설정할 수 있습니다. Valve는 각 Host, Context, Engine 또는 Server 수준에서 설정이 가능하며, 이를 통해 Tomcat 서버의 각종 요청에 대한 세부적인 ..
Tomcat 10과 Tomcat 9는 주요 차이점이 있으며, 이 중 가장 큰 변화는 Java EE에서 Jakarta EE로의 네임스페이스 전환입니다. 두 버전의 비교를 통해 주요 차이점과 성능, 기능적 차이를 자세히 설명하겠습니다.Tomcat 10 vs Tomcat 9 비교 표항목Tomcat 9Tomcat 10Java EE/Jakarta EE 버전Java EE 8 (Servlet 4.0, JSP 2.3)Jakarta EE 9 (Servlet 5.0, JSP 3.0)네임스페이스javax.* 패키지를 사용jakarta.* 패키지를 사용Servlet 버전Servlet 4.0Servlet 5.0JSP 버전JSP 2.3JSP 3.0WebSocket 버전WebSocket 1.1WebSocket 2.0HTTP/2 지..
Tomcat 10은 Apache Tomcat 프로젝트의 최신 주요 버전 중 하나로, Java Servlet, JSP, EL(Expressions Language), WebSocket과 같은 다양한 Java 웹 기술을 지원하는 오픈소스 웹 서버 및 서블릿 컨테이너입니다. Tomcat 10은 Java EE(Java Enterprise Edition)에서 Jakarta EE로 전환된 후 처음으로 등장한 버전으로, 이 전환이 Tomcat 10의 가장 큰 변화 중 하나입니다.Tomcat 10의 주요 특징 및 변화1. Jakarta EE 네임스페이스로의 전환가장 중요한 변화는 Java EE에서 Jakarta EE로의 전환입니다. Java EE는 2017년부터 Eclipse Foundation에 의해 관리되고 있으며..
ZGC(Z Garbage Collector)를 사용할 때 주의해야 할 점과 적합한 힙 메모리 크기에 대한 설명을 아래에서 다루겠습니다.ZGC 사용 시 주의해야 할 점CPU 사용량:ZGC는 매우 병렬화된 가비지 컬렉션 작업을 수행하므로 CPU 리소스를 많이 사용합니다. 따라서 여유 있는 CPU 코어가 있는 환경에서 성능이 잘 발휘됩니다.CPU 리소스가 부족한 환경에서는 성능 저하가 발생할 수 있으며, 다른 가비지 컬렉터가 더 나은 선택일 수 있습니다.메모리 오버헤드:ZGC는 객체 포인터에 추가적인 메타데이터(색상 인지 포인터)를 저장하여 메모리 사용량이 약간 더 증가할 수 있습니다. 대규모 메모리 환경에서는 이 오버헤드가 상대적으로 적지만, 소규모 메모리 환경에서는 메모리 낭비가 발생할 가능성이 있습니다...
ZGC (Z Garbage Collector)는 Java 11에서 처음 도입된 가비지 컬렉터로, Java의 가비지 컬렉션 방식 중 하나입니다. ZGC의 가장 큰 목표는 초저지연 (low-latency)을 제공하는 것입니다. 이는 가비지 컬렉션(GC) 동안 애플리케이션이 멈추는 시간을 최소화하는 것을 의미합니다. ZGC는 대용량 메모리 환경에서도 10ms 미만의 짧은 GC 지연 시간을 유지하도록 설계되었습니다.ZGC의 주요 특징초저지연 GC (Low Latency)ZGC는 대용량 힙(수 테라바이트까지 확장 가능)에서도 정지 시간을 10ms 미만으로 유지합니다.애플리케이션의 처리 중단 시간을 최소화하여, 실시간 성능을 요구하는 시스템에서 적합합니다.컨커런트(Concurrent) 방식대부분의 가비지 컬렉션 작..