2012-12-23 3 views
0

모든 경우에 프로세스의 상주 메모리 사용량을 MB 단위로 얻는 방법을 알고 싶습니다. 때로는 MB로 가져 오지만 다른 때는 GB로 제공됩니다.프로세스 메모리 사용 출력

나는 솔루션을 둘러 보았지만 대부분은 작동하지 않았습니다. top -b -n 1 | grep %i | awk '{print$9}'으로 작업 할 수있는 것이 좋습니다.

+0

코드를 게시하시기 바랍니다. –

+0

그럼 내가하고 싶은 코드는 없지만 top -b -n 1을 사용합니다. grep % i | awk '{print $ 9}'를 사용하여 프로세스의 CPU 백분율을 찾습니다. – icebox3d

+0

그러면 왜이 태그가 파이썬 질문으로 태그됩니까? –

답변

2

보조 프로세스를 사용하지 않으려면 psutil 라이브러리를 살펴보십시오. 당신은 단지 하나의 프로세스에 대한 정보를 찾고 있다면

다음은 예입니다 :

import psutil 

pid = 14551 

def rss_MB(pid): 
    proc = psutil.Process(pid) 
    mem_bytes = proc.get_memory_info().rss 
    return(float(mem_bytes)/1048576) 

mem_MB = rss_MB(pid) 
print "pid: %d has an rss of %f MB" % (pid, mem_MB) 
0

예 :

이것은 RSS 크기를 KB 단위로보고 FreeBSD의에 기록 된
import subprocess 

lines = subprocess.check_output(['ps', '-xacuww']).splitlines() 
del lines[0] # skip the header 
for p in lines: 
    items = p.split() 
    print "Process:", items[-1], " memory:", items[5], "kB" 

. Linux의 ps 옵션은 다를 수 있습니다. 매뉴얼 페이지를 확인하십시오.