본문 바로가기

전체 글

(7)
[JVM][Webflux] JVM Memory 구조와 Sentry, Kafka Memory Leak 해결 과정 최근 프로젝트에서 에러 모니터링을 위해 sentry 연동을 하니 jvm 메모리가 지속적으로 상승하는 현상이 발생하였습니다. 해당 현상을 해결하기 위한 과정을 jvm memory 를 이해 보면서 소개해보고자 합니다. JVM 메모리 구조와 GCJVM 메모리 구조JVM 은 효율적인 메모리 관리를 위해 여러 영역으로 나누어 메모리를 사용합니다. 각 영역은 그 목적에 따라 저장되는 데이터나 사용 및 해제되는 방식이 다릅니다.Method Area: 클래스와 인터페이스에 대한 정보를 저장하는 곳으로, 클래스 네임, 메소드, static 변수 정보들을 저장합니다. 공유되는 자원이며 GC 의 대상이긴 하지만 명시적으로 null 으로 선언하지 않으면 대부분 JVM 의 시작과 끝까지 사용됩니다.Heap Area: 가장 큰 ..
[Flink] Checkpoint & end-to-end exactly once flink 의 fault toleranceflink 는 데이터 스트림을 stateful 하게 처리할 수 있는 프레임워크입니다. flink 는 checkpoint 를 통해서 데이터와 이와 함께 생성된 state 들을 효과적으로 장애를 복구(fault tolerance)할 수 있는 메커니즘을 제공하고 있습니다.checkpointcheckpoint 는 state 와 해당하는 stream position 의 Snapshot 을 주기적으로 저장하고 다시 시작할 수 있게 함으로써 flink 안에서 처리되는 state 가 장애복구될 수 있도록 합니다.Snapshot 은 flink job 의 상태에 대한 image 로 kafka 의 오프셋과 같이 data source 들의 pointer 와 각 job 의 statefu..
[aws] 고가용성 Multi AZs EKS 구성하기 - 맨땅에 헤딩 들어가며서버를 구성할 때 DR(Disaster Recovery), 고가용성의 목적으로 여러 IDC 에 분산하여 서버를 배치하는 모습을 많이 볼 수 있습니다.휴먼 에러로 인한 경우가 많지만, 특정 IDC 가 있는 지역에 지진, 화재 같은 자연재해나 outage 정전으로 IDC 전체가 정상적으로 가동될 수 없는 경우들이 종종 있습니다.AWS 에서 서버를 제대로 구축해본 경험이 없어서, AWS EKS 서비스를 통해 고가용성 Multi IDC(AZ) k8s cluster 를 어떻게 구성할 수 있는지 필요한 기본 개념들부터 살펴보면서 알아보고자 합니다. IDC 가 날아간 사례고가용성 전에 고려 사항First question, what’s the requirement?Is there a budget?What’s t..