Linux의 모든 사용자 공간 프로세스에 대한 실제 메모리의 현재 및 최대 사용량을 측정하는 방법은 무엇입니까?

Linux의 모든 사용자 공간 프로세스에 대한 실제 메모리의 현재 및 최대 사용량을 측정하는 방법은 무엇입니까?

Linux에서 모든 사용자 공간 프로세스의 총 물리적 메모리 사용량에 대한 소스를 찾을 수 없습니다.

많은 하위 애플리케이션(다수의 프로세스 및 RDBMS)으로 구성된 복잡한 애플리케이션의 메모리 사용량을 측정하고 싶습니다. 애플리케이션이 실행되는 동안 현재 Linux 운영 체제 인스턴스에 있는 모든 프로세스의 메모리 사용량 추이를 기록하고 싶습니다. 나는 물리적 메모리 소비에 관심이 있고, 그것이 불가능할 경우 상주 메모리 소비(RSS상단에 있거나PSS-PrivateRSS + SharedRSS/프로세스 수). 호스트 시스템에서 실행되는 다른 애플리케이션이나 프로세스가 없습니다(메모리 사용량은 무시할 수 있음).

다른 유사한 질문과 달리 VMWare 컨테이너 내에서 실행되는 Linux 게스트에 대한 추가 정보(메모리 통계를 얻는 데 사용할 수 있음)에서 대답을 얻을 수 있습니다.

신청 절차가 너무 많고, 수명 주기가 짧은 경우도 있기 때문에 모든 신청 절차를 열거할 수는 없습니다.

이상적으로는 피크를 놓칠까 봐 샘플링하지 않고 직접 피크 메모리 사용량을 얻고 싶습니다.

내 첫 번째 추측은 다음과 같습니다./proc/메모리 정보그리고 use 를 사용 MemTotal – MemFree = CurrentMemoryUsage하지만 Linux 커널도 예를 들어 파일 캐싱을 위해 메모리를 요구할 수 있고 이는 사용된 메모리로도 기록되기 때문에 이것이 올바르지 않을까 걱정됩니다. 이 방법은 최대 메모리 사용량을 추정하는 데에도 부정확합니다.

사용시간또는/proc//smaps이는 애플리케이션에 독립 프로세스가 너무 많고 실행 시간이 매우 짧기 때문에 불가능합니다.

관련 정보