메모리 열
다른 이름: 메모리 점유량
간단한 답
활성 상태 보기의 메모리 열은 각 프로세스가 쓰고 있는 메모리의 양을 보여 줍니다. 이 수치는 프로세스의 메모리 점유량(memory footprint)을 반영하므로, 압축되지 않은 채 RAM에 있는 데이터뿐 아니라 압축된 메모리도 포함될 수 있습니다.
메모리 열로 정렬하는 것이 어떤 프로세스가 메모리를 가장 많이 쓰는지 보는 가장 빠른 방법입니다. 프로세스별 수치이므로 도우미 프로세스가 있는 앱은 여러 행에 나뉘어 있습니다.
모든 행을 더해도 윈도우 아래쪽의 사용된 메모리와 맞지 않습니다. 프로세스끼리 메모리를 공유할 수 있고, 합계를 세는 방식도 다르기 때문입니다.
앱의 메모리가 예상보다 낮아 보이는 이유
많은 앱이 도우미 프로세스를 실행하며, 도우미마다 행이 따로 있습니다. 브라우저는 기본 행에 크지 않은 수치를 보여 주지만 도우미를 모두 더하면 훨씬 많을 수 있습니다. 보기 > 모든 프로세스(계층 표시)를 선택하면 일부 도우미가 상위 프로세스 아래에 표시되며, 아니면 행을 직접 더하세요.
메모리 열 사용법
메모리 압력이 노란색이나 빨간색일 때 이 열로 정렬하세요. 더 많은 일을 시키지 않는데도 프로세스가 시간이 지나며 계속 커지는지 지켜보면 누수를 찾아낼 수 있습니다. 앱을 종료했다가 다시 열면 메모리가 풀려납니다.
보기 > 열에서 압축된 메모리 같은 다른 메모리 열을 추가하면 프로세스마다 더 자세히 볼 수 있습니다.
메모리 열이 측정하는 것
macOS는 모든 프로세스에 대해 물리적 풋프린트(physical footprint)라는 값을 계속 셉니다. 프로세스가 쓰고 소유한 메모리를 추적하는 값입니다. 활성 상태 보기의 메모리 열과 top 명령의 MEM 열은 모두 이 값을 보여 줍니다.
지금 RAM에 있는 것만이 아니라 프로세스가 소유한 메모리를 세므로, 압축된 데이터와 그 프로세스를 위해 그래픽에 쓰인 메모리도 포함될 수 있습니다. 프로세스가 읽기만 한 파일은 제외되는데, 시스템이 버렸다가 나중에 다시 읽을 수 있기 때문입니다.
드라이버나 시스템 구성 요소가 프로세스를 위해 따로 떼어 둔 메모리 중 일부는 일부러 풋프린트에서 제외됩니다. 그 크기를 프로세스가 조절할 수 없기 때문입니다. 따라서 메모리 열은 프로세스를 비교하는 데는 좋은 기준이지만, 프로세스 때문에 시스템이 쓴 모든 바이트의 정확한 기록은 아닙니다.
터미널에서 프로세스의 메모리 확인하는 방법
다음 명령은 정보를 읽기만 합니다. 활성 상태 보기가 열려 있지 않거나 시간에 따라 수치를 기록하고 싶을 때 유용합니다.
top -o mem명령을 실행하면 프로세스가 메모리 순으로 나열됩니다. MEM 열은 활성 상태 보기의 메모리 열과 같습니다. 끝내려면 q를 누릅니다.top -l 1 -o mem -n 10 -stats pid,command,mem명령을 실행하면 가장 큰 프로세스 10개를 한 번 출력하고 끝납니다.footprint뒤에footprint Safari처럼 앱 이름을 붙여 실행하면 범주별 메모리를 볼 수 있습니다. 끝의 phys_footprint 줄은 메모리 열과 같고, phys_footprint_peak는 프로세스가 시작된 이후 가장 높았던 값입니다.ps명령은 실제 메모리 열과 같은 상주 크기인 RSS를 보여 주므로, 숫자가 메모리 열과 맞지 않는다는 점에 유의하세요.
메모리 열로 메모리 누수를 알아보는 방법
- 더 빨리 업데이트되게 하려면 메모리 탭에서 보기 > 업데이트 주기 > 매우 자주(1초)를 선택합니다.
- 도우미 프로세스를 포함해 앱을 찾고 메모리 수치를 적어 둡니다.
- 문서나 윈도우를 더 열지 않고 평소처럼 앱을 계속 씁니다.
- 얼마 뒤 수치를 다시 확인합니다. 연 것을 닫아도 계속 올라가기만 하고 내려오지 않는다면 앱에 메모리 누수가 있을 가능성이 큽니다.
- 앱을 종료했다가 다시 열어 메모리를 풀어 줍니다. 다시 일어난다면 앱 업데이트를 확인합니다.
자주 묻는 질문
활성 상태 보기의 메모리 열은 무엇을 뜻하나요?
각 프로세스가 쓰고 있는 메모리의 양으로, 메모리 점유량을 바탕으로 합니다. 이 열로 정렬하면 가장 많이 쓰는 것을 찾을 수 있습니다.
메모리 열의 값을 더해도 사용된 메모리와 맞지 않는 이유는 무엇인가요?
프로세스끼리 일부 메모리를 공유하고, 시스템 합계는 다른 방식으로 측정되므로 행과 합계가 정확히 맞지 않습니다.
앱 하나가 여러 행으로 표시되는 이유는 무엇인가요?
앱이 도우미 프로세스를 실행하고, 활성 상태 보기가 프로세스를 하나하나 따로 나열하기 때문입니다.
메모리 열은 실제 메모리와 같은 건가요?
아닙니다. 메모리는 프로세스의 풋프린트이며 압축된 데이터가 포함될 수 있습니다. 실제 메모리는 지금 RAM에 있는 것만이며, 다른 프로세스와 공유하는 메모리 일부도 포함됩니다.
메모리 열에 GPU 메모리도 포함되나요?
시스템이 그 프로세스에 할당한 그래픽 메모리가 포함될 수 있습니다. 풋프린트는 일반 앱 데이터뿐 아니라 여러 종류의 메모리를 포괄하기 때문입니다.
메모리 열이 ps나 다른 도구와 맞지 않는 이유는?
ps 같은 도구는 상주 크기를 보고하며, 메모리를 다르게 셉니다. top 명령의 MEM 열과 footprint 명령은 활성 상태 보기와 같은 풋프린트 값을 씁니다.
관련 항목
단계별 안내: CPU나 메모리를 쓰는 앱 찾기.
활성 상태 보기보다 나은 것을 찾고 있나요? Mac용 활성 상태 보기 대체 앱 추천을 확인하거나 용어집의 모든 용어를 둘러보세요.