본문으로 이동
토스ㅣSLASH 22 - Java Native Memory Leak 원인을 찾아서
컨퍼런스

토스ㅣSLASH 22 - Java Native Memory Leak 원인을 찾아서

SLASH 토스 · YouTube

원문 보기

AI 핵심 요약

토스페이먼츠 서버에서 OOM Killer가 Java 프로세스를 종료했지만, 힙과 JVM 네이티브 메모리 추적 결과만으로는 RSS와의 큰 차이를 설명할 수 없었다. JNI/JNA, Direct Buffer, Pinpoint를 확인한 뒤 프로세스 메모리 덤프와 jemalloc 프로파일링을 적용해 C2 컴파일러가 메모리 사용의 주요 원인임을 파악했다. C1 컴파일러로 바꾸자 메모리 문제는 재현되지 않았지만 CPU 사용률이 높아졌고, Graal 컴파일러를 적용해 CPU 사용률을 낮추면서 서비스를 운영했다. JVM 내부 지표만으로 원인이 보이지 않을 때는 프로세스 수준으로 조사 범위를 넓히고, 안전한 배포·롤백 체계 안에서 대안을 검증하는 것이 중요하다고 설명했다.

  • JVM 내부 통계와 프로세스 RSS를 함께 비교하면 힙 밖에서 발생한 메모리 사용량을 추정할 수 있다.
  • JNI/JNA, Direct Buffer, APM 에이전트처럼 JVM이 직접 추적하지 못할 수 있는 영역부터 점검한다.
  • 원인이 JVM 통계에 드러나지 않으면 프로세스 메모리 덤프나 jemalloc 프로파일링으로 조사 범위를 넓힌다.
  • 컴파일러를 바꾸는 실험은 CPU 사용률 같은 부작용도 함께 확인하고, 카나리·블루그린 배포와 롤백 수단을 마련한 뒤 진행한다.

소개

서버 프로세스가 내려갔을 때 코드와 Java 모니터링으로 원인을 못 찾는다면 어떻게 해야 할까요? 생각만 해도 막막한 이 순간, 원인을 찾아가는 과정을 공유합니다. 박동호 / 토스 Server Developer 발표 자료 👉🏻 https://bit.ly/3NLXTg5 토스 개발자 컨퍼런스 SLASH에 대한 자세한 정보는 👉🏻 https://toss.im/slash-22 컨퍼런스 및 세션에 대한 문의는 👉🏻 slash@toss.im #토스 #개발자컨퍼런스 #SLASH

비슷한 학습 자료

컨퍼런스 SLASH

이론으로, 감으로 예상만 하던 kernel 영역까지 명확하게 확인할 수 없을까요? eBPF를 활용해 observability를 대폭 향상시킨 경험을 나눕니다. 이항령 / Head of Server 이재성 / DevOps Team Leader 토스 개발자 컨퍼런스 SLASH에 대한 자세한 정보는 👉🏻 https://toss.im/slash-24 컨퍼런스 및 세션에 대한 문의는 👉🏻 slash@toss.im 토스에 합류하고 싶다면 👉🏻 https://toss.im/career/jobs #토스 #개발자컨퍼런스 #SLASH #SLASH24 #kernel #observability #devops #backend 유의 사항 *본 발표자료의 저작권은 연사에 있으며, 저작권자의 사전 서면 동의 없이 자료의 일부 또는 전부를 이용하거나 배포할 수 없습니다. *또한 해당 자료를 복제하여 SLASH 행사 홈페이지를 제외한 온라인상에 게재하는 행위는 연사가 동의한 저작권 및 배포...

데브옵스 · 인프라 시스템 · 운영체제

컨퍼런스 SLASH

Hyperthread는 어플리케이션에 어떤 영향을 미칠까요? CPU의 구조와 이를 더 자세히 모니터링 할 수 있는 Top down 분석 방법도 함께 살펴봅니다. 최준우 / 토스 Server Deveopler 토스 개발자 컨퍼런스 SLASH에 대한 자세한 정보는 👉🏻 https://toss.im/slash-24 컨퍼런스 및 세션에 대한 문의는 👉🏻 slash@toss.im 토스에 합류하고 싶다면 👉🏻 https://toss.im/career/jobs #토스 #개발자컨퍼런스 #SLASH #SLASH24 #server #backend #hyperthread #cpu #observability 유의 사항 *본 발표자료의 저작권은 연사에 있으며, 저작권자의 사전 서면 동의 없이 자료의 일부 또는 전부를 이용하거나 배포할 수 없습니다. *또한 해당 자료를 복제하여 SLASH 행사 홈페이지를 제외한 온라인상에 게재하는 행위는 연사가 동의한 저작권 및 배포전송권에 위배됩니...

시스템 · 운영체제

컨퍼런스 SLASH

서비스 운영 과정 속 여러 장애들, 어떻게 그 원인을 빠르고 정확하게 파악할 수 있을까요? 상황에 맞는 다양한 ‘프로파일러’로 문제 원인을 파악하고 또 해결한 과정을 소개합니다. 조유성 / 토스 Frontend Developer 발표 자료 👉🏻 https://bit.ly/42ypWpE 토스 개발자 컨퍼런스 SLASH에 대한 자세한 정보는 👉🏻 https://bit.ly/43kW3tO 컨퍼런스 및 세션에 대한 문의는 👉🏻 slash@toss.im 토스에 합류하고 싶다면 👉🏻 https://toss.im/career/jobs #profiler #서비스성능 #serverdeveloper #토스 #개발자컨퍼런스 #SLASH *본 발표자료의 저작권은 연사에 있으며, 저작권자의 사전 서면 동의 없이 자료의 일부 또는 전부를 이용하거나 배포할 수 없습니다. *또한 해당 자료를 복제하여 SLASH 행사 홈페이지를 제외한 온라인상에 게재하는 행위는 연사가 동의한 저작...

백엔드 데브옵스 · 인프라 로드맵 2개에 담김

컨퍼런스 SLASH

서버 인프라를 효과적으로 트러블 슈팅할 수 있도록 노력한 경험과 모니터링 인프라를 운영한 경험을 공유합니다. 이재성 / 토스 DevOps Engineer 토스 개발자 컨퍼런스 SLASH에 대한 자세한 정보는 👉🏻 https://toss.im/slash-21​ 컨퍼런스 및 세션에 대한 문의는 👉🏻 slash@toss.im #토스​ #개발자컨퍼런스​ #SLASH

데브옵스 · 인프라

컨퍼런스 SLASH

Kotlin으로 작성한 스프링 프레임워크 기반 서버 애플리케이션의 테스트 커버리지. 그것을 100%까지 올리고 1년 6개월 동안 유지하면서 배운 점과 테스트 개선 방법에 대한 고민을 공유합니다. 이응준 / 토스뱅크 Server Developer 토스 개발자 컨퍼런스 SLASH에 대한 자세한 정보는 👉🏻 https://toss.im/slash-21 컨퍼런스 및 세션에 대한 문의는 👉🏻 slash@toss.im #토스 #개발자컨퍼런스 #SLASH

소프트웨어 테스트 TDD

컨퍼런스 SLASH

토스에서 경험한 사이트 신뢰성 엔지니어링 사례를 공유합니다. 조규희 / 토스 Site Reliability Engineer 토스 개발자 컨퍼런스 SLASH에 대한 자세한 정보는 👉🏻 https://toss.im/slash-21 컨퍼런스 및 세션에 대한 문의는 👉🏻 slash@toss.im #토스 #개발자컨퍼런스 #SLASH

데브옵스 · 인프라