![프로그램이 차지하는 메모리 양을 확인하는 방법](https://linux55.com/image/724/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%A8%EC%9D%B4%20%EC%B0%A8%EC%A7%80%ED%95%98%EB%8A%94%20%EB%A9%94%EB%AA%A8%EB%A6%AC%20%EC%96%91%EC%9D%84%20%ED%99%95%EC%9D%B8%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95.png)
내 프로세스를 모니터링하기 위해 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