리눅스(Linux) 환경에서 실행되는 애플리케이션의 메모리 사용량을 정확하고 일관되게 측정하는 새로운 오픈소스 도구 'memftprt'가 공개되어 개발자들의 주목을 받고 있습니다. 이 도구는 단순히 특정 시점의 메모리 사용량을 보여주는 것을 넘어, 애플리케이션의 전체 프로세스 트리가 안정화될 때까지 기다린 후 데이터를 수집하여 신뢰도 높은 메모리 사용량 정보를 제공합니다.
memftprt는 애플리케이션의 루트 프로세스와 모든 하위 프로세스(descendants)의 가상 크기(VSZ), 상주 메모리(RSS), 비례 공유 세트(PSS), 고유 세트 크기(USS) 등 다양한 메모리 지표를 측정합니다. 특히 PSS(Proportional Share Size)는 공유 페이지를 사용자 수로 나누어 계산하므로, 여러 프로세스가 메모리를 공유하는 복잡한 애플리케이션의 실제 물리 메모리 소유량을 파악하는 데 가장 유용한 지표로 꼽힙니다. 또한, 자바 가상 머신(JVM) 기반 애플리케이션의 경우 핫스팟(HotSpot) JVM의 네이티브 메모리 트래킹(NMT) 데이터를 수집하는 기능도 포함되어 있어, 자바 개발자들에게 더욱 심층적인 분석 기회를 제공합니다. 측정된 데이터는 TSV, JSON, 또는 자체 포함된 HTML 보고서 형식으로 출력되어 다양한 분석 환경에 활용될 수 있습니다.
이 도구의 가장 큰 장점은 '일관성'입니다. memftprt는 애플리케이션이 안정화될 때까지 기다리거나, 특정 시간 동안 프로세스 트리를 '동결(freeze)'시킨 후 메모리 스냅샷을 찍는 방식으로 데이터의 신뢰성을 높입니다. 이는 기존의 `ps`, `top` 같은 명령어가 제공하는 순간적인 데이터로는 파악하기 어려웠던, 애플리케이션의 실제 메모리 발자국(memory footprint)을 정확하게 이해하는 데 필수적입니다. 개발자들은 이 도구를 통해 메모리 누수(memory leak)를 진단하거나, 애플리케이션의 메모리 최적화 기회를 발굴하는 데 큰 도움을 받을 수 있을 것으로 기대됩니다. 특히 복잡한 마이크로서비스 아키텍처나 컨테이너 환경에서 실행되는 애플리케이션의 메모리 사용량을 명확하게 파악하는 데 기여할 것입니다.