Go 1.24 메모리 누수 조사: 예상치 못한 발견과 스위스 테이블의 놀라움

2025-07-20
Go 1.24 메모리 누수 조사: 예상치 못한 발견과 스위스 테이블의 놀라움

Go 1.24 출시 후 데이터 처리 서비스에서 예상치 못한 메모리 사용량 증가가 관찰되었습니다. 조사 결과, Go 런타임의 메모리 할당 함수 리팩토링으로 인해 최적화가 의도치 않게 제거되어 큰 객체 할당 시 불필요한 메모리 영역 초기화가 발생하여 상주 집합 크기(RSS)가 증가한 것으로 나타났습니다. Go 런타임 내부 메트릭은 변화가 없었지만, 시스템 레벨 메트릭은 메모리 사용량의 현저한 증가를 보였습니다. Go 커뮤니티와의 협업을 통해 최종적으로 문제를 파악하고 수정했습니다. 놀랍게도 Go 1.24의 새로운 "스위스 테이블" 기능은 고 트래픽 환경에서 메모리 사용량을 크게 줄여 이전의 회귀를 상쇄할 뿐만 아니라 추가적인 메모리 절약 효과를 가져왔습니다.

개발