swiss-tables

2 개의 포스트

datadog원문

수백 개의 파드에서 Go 1.24 메모리 회귀를 추적해 찾아낸 방법 (새 탭에서 열림)

Go 1.24로의 업그레이드 이후, 새로운 맵 구현인 스위스 테이블(Swiss Tables)에 대한 기대와 달리 일부 서비스에서 메모리 사용량(RSS)이 약 20% 증가하는 현상이 발견되었습니다. 조사 결과, Go 런타임 내부의 메모리 관리 지표는 안정적이었으나 시스템 레벨의 실제 물리 메모리 점유가 늘어난 것으로 확인되었습니다. 이는 Go 1.24에서 진행된 `mallocgc` 함수의 리팩토링 과정에서 발생한 미묘한 메모리 할당자 회귀(Regression) 현상이 원인이었습니다. ### 런타임 지표와 시스템 지표의 불일치 * Go 1.24 업그레이드 후 데이터 처리 서비스의 RSS(Resident Set Size)가 눈에 띄게 증가했으나, Go 런타임 지표와 힙 프로파일상에는 아무런 변화가 기록되지 않았습니다. * 이는 Go 런타임 입장에서는 메모리를 더 사용하고 있지 않다고 판단하지만, 운영체제(Linux) 입장에서는 프로세스가 더 많은 물리 메모리를 점유하고 있는 상태임을 의미합니다. * Kubernetes의 메모리 제한(Limit)이나 OOM 킬러는 시스템 지표인 RSS를 기준으로 작동하기 때문에, 런타임 지표에 나타나지 않는 이러한 증가는 서비스 안정성에 치명적일 수 있습니다. ### 주요 변경 사항에 대한 가설 검증 * 먼저 Go 1.24의 핵심 변화인 '스위스 테이블'과 '스핀 비트 뮤텍스(Spin bit mutex)'를 원인으로 의심하고 실험을 진행했습니다. * `GOEXPERIMENT=noswissmap` 및 `GOEXPERIMENT=nospinbitmutex` 플래그를 사용하여 해당 기능들을 각각 비활성화한 후 빌드하여 배포했으나, 메모리 증가 현상은 해결되지 않았습니다. * 이를 통해 이번 문제는 새로운 기능 자체가 아니라, 런타임의 더 깊은 곳에서 발생한 변화 때문임을 확인했습니다. ### 가상 메모리와 물리 메모리의 매핑 분석 * 리눅스의 `/proc/[pid]/smaps` 파일을 분석하여 프로세스의 메모리 영역별 가상 메모리(Size)와 물리 메모리(RSS)의 차이를 추적했습니다. * 분석 결과, Go 1.23에서는 힙 영역의 RSS가 가상 메모리 크기보다 약 300 MiB 낮게 유지되었으나, Go 1.24에서는 가상 메모리 크기와 RSS가 거의 일치하는 현상이 발견되었습니다. * 결과적으로 Go 1.24의 런타임이 이전 버전보다 가상 메모리를 실제 물리 RAM에 더 공격적으로 할당(Commit)하고 있다는 사실을 밝혀냈습니다. ### mallocgc 리팩토링과 할당자 이슈 * Go 1.24 변경 로그를 정밀 분석한 결과, 메모리 할당의 핵심 로직인 `mallocgc` 함수에 대대적인 리팩토링이 있었음을 확인했습니다. * 이 과정에서 발생한 의도치 않은 로직 변화가 할당된 메모리를 실제 물리적 공간에 매핑하는 방식에 영향을 주어 RSS 상승을 유도한 것으로 파악되었습니다. * 작성자는 이 문제를 Go 개발 팀과 공유하여 원인을 확인했으며, 이는 런타임 리팩토링으로 인한 성능 회귀의 일종으로 결론지어졌습니다. Go 1.24 업그레이드를 고려 중인 팀은 런타임 내부 지표(Heap usage)뿐만 아니라 시스템 레벨의 RSS 지표를 면밀히 모니터링해야 합니다. 비록 메모리 할당자에서 미묘한 RSS 증가가 관측되었지만, 동시에 도입된 스위스 테이블은 대규모 인메모리 맵을 사용하는 서비스에서 수백 기가바이트의 메모리를 절약할 수 있는 잠재력을 가지고 있으므로 서비스 특성에 따른 비교 분석이 필요합니다.

datadog2분 읽기큐레이션 요약

Go 1.24의 Swiss

Datadog이 Gartner의 2026년 Observability Platforms 매직 쿼드런트에서 ‘Leader’로 선정되었다는 소식을 알리는 글입니다. 제공된 내용은 선정 사실과 Datadog의 제품·플랫폼 영역을 소개하는 내비게이션 중심이며, 평가 기준이나 구체적인 비교 분석은 포함되어 있지 않습니다. ### Gartner 매직 쿼드런트 리더 선정 - Datadog은 Gartner® Magic Quadrant™ for Observability Platforms 2026에서 Leader로 소개되었습니다. - 관련 Gartner 보고서 및 Datadog 발표 페이지로 연결되는 링크가 제공됩니다. - 본문에는 Gartner의 평가 근거, 경쟁사 비교, 점수 또는 세부 순위는 제시되지 않았습니다. ### 인프라 및 애플리케이션 모니터링 - 인프라 모니터링, 메트릭, 컨테이너와 Kubernetes 모니터링을 제공합니다. - 네트워크, 서버리스, GPU, 스토리지 및 클라우드 비용 관리 기능을 포함합니다. - 애플리케이션 성능 모니터링(APM), 서비스 모니터링, 지속적 프로파일링, 동적 계측도 지원합니다. ### 로그·데이터 관측성 - 로그 관리, 민감 데이터 스캐닝, 감사 추적, Observability Pipelines를 제공합니다. - 데이터베이스, 데이터 스트림, 데이터 품질, 데이터 작업(Job) 모니터링 기능을 포함합니다. - 수집된 로그와 데이터를 처리·필터링하고 보안 및 운영 분석에 활용할 수 있도록 구성되어 있습니다. ### 보안과 디지털 경험 - 코드 보안, SAST·IAST, 소프트웨어 구성 분석, IaC 및 클라우드 보안 기능을 제공합니다. - Cloud SIEM, 워크로드 보호, 애플리케이션·API 보호, 취약점 관리도 제품 범위에 포함됩니다. - 브라우저·모바일 RUM, 세션 리플레이, 신디틱 모니터링, 오류 추적, 제품 분석을 통해 사용자 경험을 관찰합니다. ### 소프트웨어 제공과 서비스 관리 - CI Visibility, 테스트 최적화, 지속적 테스트, 코드 커버리지, 기능 플래그를 제공합니다. - 내부 개발자 포털과 IDE 플러그인 등 개발자 생산성 기능도 포함합니다. - 이벤트 관리, 서비스 카탈로그, SLO, 인시던트 대응, 워크플로 자동화 기능으로 운영 프로세스를 지원합니다. ### AI 기반 관측성 - Bits AI Agents, Bits Chat, Bits Investigation 등 AI 기반 분석·조사 기능을 제공합니다. - AI 에이전트 관측성, GPU 모니터링, MCP Server 및 에이전트 디렉터리도 제품군에 포함됩니다. - 이러한 기능은 모니터링 데이터를 바탕으로 문제 탐색과 운영 자동화를 지원하는 방향으로 구성되어 있습니다. 실제로 Datadog 도입을 검토한다면 ‘Leader’라는 선정 결과만으로 판단하기보다, 필요한 로그·메트릭·트레이스 범위, 데이터 보존 비용, 기존 클라우드와의 통합성, 보안 및 AI 기능의 실제 운영 효과를 별도로 검증하는 것이 좋습니다.

원문 읽기(새 탭에서 열림)