목록 보기
Go GC를 너무 믿지 마세요 - 메모리 누수 탐지와 GC 주기 조절
백엔드

Go GC를 너무 믿지 마세요 - 메모리 누수 탐지와 GC 주기 조절

네이버 D2
네이버 D2
2025년 2월 10일

두줄요약

Go GC만 믿고 메모리 증가를 넘기면 원인 파악이 늦어질 수 있음을 다뤘습니다. cgo 누수 탐지와 GOGC, GOMEMLIMIT 조절로 메모리 사용량을 개선하는 방법을 설명했습니다.

핵심 내용

  • Go GC를 믿기만 해서는 해결되지 않는 메모리 증가 사례 정리
  • Noir 서버의 RES와 heap 차이를 기준으로 Go 관리 메모리 외 사용 가능성 점검
  • cgo 메모리 누수 탐지, GOGC·GOMEMLIMIT 조절, heap 프로파일링을 통한 과다 메모리 사용 분석

주의할 점

  • Go 버전에 따라 MADV_FREE와 MADV_DONTNEED 동작 차이로 RES 해석이 달라질 수 있음
  • GOGC를 과도하게 낮추면 GC 오버헤드가 커지고, 설정만으로는 문제 해결이 어려울 수 있음
  • GOMEMLIMIT과 GOGC는 실험을 통해 적정값을 찾아야 함

적용해볼 점

  • RES와 heap 차이가 큰 경우 cgo 포함 비Go 메모리 누수 가능성 점검
  • valgrind는 cgo 전용 테스트 바이너리에 적용해 누수 확인
  • gctrace, 프로파일러로 GC 주기와 메모리 사용량을 함께 관찰

댓글 0

댓글을 작성하려면 로그인이 필요합니다.

댓글을 불러오는 중...