우분투에서 특정 프로세스에 할당 된 총 메모리를 찾으십시오 된 총 메모리를 어떻게 알 수 있습니까?

우분투에서 특정 프로세스에 할당 된 총 메모리를 어떻게 알 수 있습니까?



답변

시험:

pidof bash | xargs ps -o rss,sz,vsz

현재 bash쉘 의 메모리 사용량을 찾으려면 (사용한다고 가정 bash). bash조사중인 대상으로 변경하십시오 . 특정 프로세스를 수행 한 경우 자체 프로세스를 사용하십시오.

ps -o rss,sz,vsz <process id>

로부터 man페이지 :

RSS: 상주 세트 크기, 태스크가 사용한 스왑되지 않은 실제 메모리 (킬로바이트).

SZ: 프로세스 핵심 이미지의 실제 페이지 크기. 여기에는 텍스트, 데이터 및 스택 공간이 포함됩니다.

VSZ: KiB 단위 프로세스의 가상 메모리 크기 (1024 바이트 단위).

에 대한 man페이지 ps에는 -o옵션에 대한 가능한 모든 인수가 나열 됩니다 (선택할 항목이 많이 있습니다). 대신에 대체 메모리 레이아웃을 보여주는 -o rss,szBSD 스타일 v옵션 (대시 없음)을 사용할 수 있습니다 .


답변

pmap프로세스의 메모리 맵을 표시하는을 사용할 수 있습니다 .

pmap -p pid

이에 대한 자세한 내용은 매뉴얼 페이지를 참조 man pmap하거나 pmap (1) : process memory map of process-Linux 매뉴얼 페이지를 참조하십시오 .


답변

우분투에서 특정 프로세스에 할당 된 총 메모리를 찾는 방법은 무엇입니까?

프로세스에 할당 된 메모리 가 무엇인지 정의하지 않고 실제로는 매우 복잡한 질문입니다 (공유 메모리 매핑은 무엇입니까-자세한 내용은 mmap (2) 참조, POSIX 공유 메모리는 무엇 -shm_overview (7) 참조). ; 열린 파일에 사용되는 페이지 캐시의 일부 페이지는 어떻 습니까?

당신은 사용할 수 있습니다 /proc/(BTW에 의해 사용되는 파일 시스템 ps, pmap, top, htop등 ….). 자세한 내용은 proc (5) 를 읽으십시오 . 특히 pid 1234 프로세스의 /proc/1234/status경우 /proc/1234/statm, /proc/1234/maps등을 사용할 수 있습니다 . 이들은 모두 텍스트로 된 의사 파일 (파이프와 약간 유사)로 볼 수 있습니다 cat(또는 일부 프로그램 내에서 순차적으로 읽을 수 있음 ). BTW, 프로그램 내부에서 /proc/self (의사 symlink), 예를 들어 순차적으로 읽는 /proc/self/status등.

LinuxAteMyRam 도 참조하십시오 .


답변