같은 빌드의 서버 둘을 띄워 하나만 환경 변수 MALLOC_ARENA_MAX로 glibc 아레나 수를 줄이거나 jemalloc 같은 다른 할당기로 바꾸고, 며칠 동안 pidstat -r의 RSS를 비교함
이러면 맞음
인원·개체 수는 비슷한데 바꾼 서버만 RSS 증가가 멈추거나 크게 줄어듦
이러면 아님
할당기를 바꿔도 똑같이 오르면 해제하지 않는 메모리(mem-leak)
확인 수단
인프라 도구로 확인(게임 코드 불필요)
더 알아보기
누수와 모양이 같아서 힙 분석으로는 누수 지점이 안 보입니다. 리눅스 기본 할당기(glibc)는 스레드가 많은 서버에서 특히 심해, 할당기만 바꿔도 사용량이 크게 줄기도 합니다.
출처
mallopt(3) — Linux manual pageLinux man-pages glibc malloc은 스레드 경합을 줄이려고 아레나를 CPU 수의 배수까지 만들고, 아레나가 많을수록 메모리 사용이 늘어남(M_ARENA_MAX로 제한, 환경 변수 MALLOC_ARENA_MAX로도 설정)