반응형
개발을 하다보면 시스템 정보를 계속 모니터링 해야하는 경우가 많습니다.
현재 구동중인 프로그램이 CPU 부하를 얼마나 쓰는지 RAM은 얼마나 사용하는지.
memory leak이 있는지 등등..
관련된 정보를 알아오는 방법을 알아보겠습니다.
파이썬에서는 주로 psutil과 GPUtil 을 사용하여 정보를 얻을 수 있습니다.
1. 각종 정보 받아오기 소스
import psutil
import GPUtil
import socket
# 자신의 호스트 이름 가져오기
def get_hostname() :
my_hostname = socket.gethostname()
print(f"hostname: {my_hostname}")
#CPU/RAM 정보 가져오기
def get_cpu_ram():
cpu = psutil.cpu_percent()
print(f"cpu: {cpu:.2f}/100 %")
ram = psutil.virtual_memory()
ram_used = f"{ram.used/1024**3:.2f}"
ram_total = f"{ram.total/1024**3:.2f}"
print(f"ram : {ram_used}/{ram_total} GB")
#GPU/RAM/온도 정보 가져오기
def get_gpu():
gpus = GPUtil.getGPUs()
for gpu in gpus:
print(f"gpu {gpu.id}: {gpu.name}")
print(f" gpu Load: {gpu.load*100}%")
print(f" gpu Free Memory: {gpu.memoryFree}MB")
print(f" gpu Used Memory: {gpu.memoryUsed}MB")
print(f" gpu Total Memory: {gpu.memoryTotal}MB")
print(f" gpu Temperature: {gpu.temperature} C")
if not gpus:
print("No gpu found.")
#마운트된 disk 정보 가져오기
def get_disk() :
# 디스크 파티션 정보 가져오기
partitions = psutil.disk_partitions()
# 관심 있는 마운트포인트만 필터링
interesting_mountpoints = {'/','/home'}
# 각 파티션에 대해 사용량 정보를 가져오기
for partition in partitions:
mountpoint = partition.mountpoint
# 중복이나 필요 없는 시스템 경로를 제외 조건으로 걸러냄
#if mountpoint not in interesting_mountpoints and not mountpoint.startswith('/etc') and not mountpoint.startswith('/usr'):
# interesting_mountpoints.add(mountpoint)
# 설정한 관심 있는 경로만 처리할때
if mountpoint in interesting_mountpoints:
print(f"Device: {partition.device}")
print(f" Mountpoint: {partition.mountpoint}")
print(f" File system type: {partition.fstype}")
try:
# 디스크 사용량 정보 가져오기
usage = psutil.disk_usage(partition.mountpoint)
print(f" Total Size: {usage.total / (1024 ** 3):.2f} GB")
print(f" Used: {usage.used / (1024 ** 3):.2f} GB")
print(f" Free: {usage.free / (1024 ** 3):.2f} GB")
print(f" Usage Percentage: {usage.percent}%")
except PermissionError:
# 특정 파티션에 대한 접근 권한이 없을 수 있습니다.
print(" Could not access this partition.\n")
if __name__ == '__main__' :
get_hostname()
get_cpu_ram()
get_gpu()
get_disk()
실행 결과를 보겠습니다.
hostname: ubuntu219
cpu: 0.00/100 %
ram : 2.49/31.20 GB
gpu 0: NVIDIA GeForce RTX 2080 Ti
gpu Load: 0.0%
gpu Free Memory: 11003.0MB
gpu Used Memory: 15.0MB
gpu Total Memory: 11264.0MB
gpu Temperature: 39.0 C
Device: /dev/sda6
Mountpoint: /
File system type: ext4
Total Size: 857.06 GB
Used: 660.67 GB
Free: 152.78 GB
Usage Percentage: 81.2%
Device: /dev/sdc1
Mountpoint: /home
File system type: fuseblk
Total Size: 1863.01 GB
Used: 909.28 GB
Free: 953.74 GB
Usage Percentage: 48.8%
반응형
'IT > 개발' 카테고리의 다른 글
Rocky Linux 파이썬으로 네트워트 인터페이스 정보 가져오기, 각 트래픽 량 계산하기 (랜카드별 데이터송수신 데이터량) (0) | 2024.11.08 |
---|---|
vscode에서 break point가 동작하지 않을때 해결 (0) | 2024.08.27 |
LLM 환각(Hallucination)에 대한 모델 평가(갈릴레오AI 벤치마크, 클로드, GPT, 큐원, 제미나이 등) (0) | 2024.08.01 |
미스트랄 라지2 출시 개요 (Mistral Large 2, Llama 3.1 능가) (0) | 2024.07.26 |
Llama 3.1 405B 개요 (메타, 최대 규모의 오픈소스 LLM 공개) (0) | 2024.07.24 |