프로그램이 차지하는 메모리 양을 확인하는 방법

프로그램이 차지하는 메모리 양을 확인하는 방법

내 프로세스를 모니터링하기 위해 htop을 사용하지만 실행 중인 대부분의 서비스는 다중 스레드이므로 어떤 경우에는 모든 서비스에 대해 동일하고 때로는 차이가 있는 메모리 사용 비율과 함께 몇 줄에 표시됩니다.

Firefox를 예로 들면, 각각 13%의 메모리를 소비하는 15개의 프로세스를 나열할 수 있습니다.

Firefox, MySQL, 일부 fcgi 스크립트 또는 다른 것이 얼마나 많은 메모리를 차지하고 있는지 알 수 있습니까? htop 출력이 오해의 소지가 있는 것처럼 보이기 때문입니다.

답변1

대부분의 최상위 구현에는 스레드 표시를 켜거나 끄는 방법이 있습니다.

  • htop: 설정/표시 옵션 메뉴에서 "Hide Userland Threads".
  • Linux 상단: H스레드 표시를 전환하려면 누릅니다(그러나 기본적으로 꺼져 있음).
  • OpenBSD Top: T스레드 표시를 전환하려면 누릅니다(그러나 기본적으로 꺼져 있음).

메모리 맵과 메모리 사용 공간은 프로세스의 속성이므로 프로세스의 각 스레드에 대해 항상 동일한 숫자가 표시됩니다. 숫자가 다르다면 프로세스가 여러 개 있다는 뜻입니다.

개념이 명확하게 정의되어 있지 않기 때문에 일련의 프로세스의 총 메모리 소비량을 알아내는 쉬운 방법이 없습니다. 일부 메모리는 공유될 수 있습니다. 이는 공유 라이브러리에서 자주 발생하며, 관련 프로세스(예: 서버의 여러 인스턴스)가 공유 메모리를 사용하여 데이터를 교환할 가능성이 더 높습니다. 숫자만 더하면 일반적으로 실제 사용된 메모리보다 훨씬 큰 숫자를 얻게 됩니다.

답변2

다음을 사용할 수 있습니다.http://www.pixelbeat.org/scripts/ps_mem.py

관련 정보