우분투에서 특정 프로세스에 할당 된 총 메모리를 어떻게 알 수 있습니까?
답변
시험:
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,sz
BSD 스타일 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 도 참조하십시오 .