Home
작심삼일 블로그
Cancel

JEP 346 > unused (미사용) committed memory 를 OS 로 반환 (feat. 인프라 비용 절감)

들어가며… 최근 회사에서 JDK, Spring Boot, Kotlin, Gradle 등 기반 시스템 버전 업그레이드하는 작업을 주도했다. 그 중 JDK 버전은 11 → 17, 17 → 21 두 단계로 진행할 계획이었고, 계획대로 JDK 17 부터 버전 업데이트를 했다. 업데이트 후 애플리케이션 메트릭을 살펴보는데 Heap 메모리 풋프린트가 이전과 다른...

k8s 환경에서 패킷 캡쳐하는 방법 > tcpdump, wireshark

k8s 환경에서 서버를 운용하다보면 종종 파드에서 발생한 네트웍 이슈 트러블 슈팅을 위해 패킷 단위 분석이 필요한 경우가 있다. 이 때 tcpdump 로 생성한 덤프 파일을 시각화하기 위해 wireshark 를 활용한다. tcpdump 외에도 ksniff 같은 더 편리한 도구도 있다고 한다. 나중에 사용해 봐야겠다! 준비물 1. pod 에 tcpdu...

JVM 메모리 누수 > Native 메모리 > glibc malloc

몇 개월 전에 회사 애플리케이션에서 발생한 메모리 누수를 트러블 슈팅 & 픽스한 내용을 포스트로 다루었다. 누수를 잡아낸 후에도 미량이지만 애플리케이션 전체 메모리 사용량 (RSS 기준)이 계속해서 늘어나고 있었다. 원인을 파헤쳐보니 크리티컬한 내용은 아니나, GNU C 라이브러리 (glibc) 위에 구동되는 JVM 은 알게 모르게 영향을 받...

JVM 메모리 누수 > Heap > lettuce

최근 회사 애플리케이션의 JVM 메모리 누수를 찾아낸 뒤 픽스했다. 과정을 정리해두면 메모리 누수를 또 찾고 있을 미래의 나에게도 도움이 될 것 같아 정리해본다. 트러블 슈팅 배경 애플리케이션 파드가 일정 시간 이상 에이징이 되면 RESTART 되고 있다. 사내 메트릭 분석 툴에 힙 히스토그램을 시계열로 분석할 수 있는 기능이 있어 이를 활용해봤다...