반응형

파이썬 프로그램 프로세스가 사용하는 메모리 크기 검사

 

import os
import psutil

def get_process_memory_usage(pid):
  """프로세스 ID의 메모리 사용량을 튜플(RSS, VMS)로 반환"""
  try:
    process = psutil.Process(pid)
    mem_info = process.memory_info()
    return (mem_info.rss, mem_info.vms)  # RSS(Resident Set Size), VMS(Virtual Memory Size)
  except psutil.NoSuchProcess:
    return None
  
def my_pid():
  """현재 실행 프로세스 ID를 반환"""
  pid = os.getpid()
  return pid


# 테스트 -----------------------------------------------------------
pid = my_pid()
print(f"현재 프로세스 ID: {pid}")

mem = get_process_memory_usage(pid)
if mem:
  print(f"프로세스 ID {pid} 메모리 사용량:")
  # 프로세스가 사용하는 물리 메모리 크기
  print(f" 물리 메모리 사용량(RSS): {mem[0]/(1024 ** 2):.2f} MB")
  # 프로세스에 할당된 가상 메모리 크기
  print(f" 가상 메모리 할당량(VMS): {mem[1]/(1024 ** 2):.2f} MB") 
else:
  print(f"{pid} 프로세스 ID를 찾을 수 없습니다.")

 

[실행 결과]

현재 프로세스 ID: 27800
프로세스 ID 27800 메모리 사용량:
 물리 메모리 사용량(RSS): 24.77 MB
 가상 메모리 할당량(VMS): 13.69 MB

반응형

+ Recent posts