HOWTO · Python
Python에서 CPU 사용량 가져오기
이 튜토리얼은 Python에서 운영 체제의 현재 CPU 사용량을 가져오는 방법을 보여줍니다. psutil 라이브러리 사용과 셸 명령 실행 등 CPU 성능을 효과적으로 모니터링하는 다양한 방법을 알아봅니다. 실용적인 코드 예제와 자세한 설명을 통해 Python 실력을 향상하고 시스템 성능을 최적화하세요.
이 페이지의 내용
오늘날의 디지털 시대에 시스템 성능을 이해하는 것은 개발자와 시스템 관리자 모두에게 매우 중요합니다. 자주 면밀히 살펴보는 핵심 지표 중 하나가 CPU 사용량입니다. Python 애플리케이션을 최적화하든 시스템 상태를 모니터링하든, CPU 사용량을 가져오는 방법을 아는 것은 매우 유용할 수 있습니다.
이 튜토리얼에서는 Python을 사용하여 운영 체제의 현재 CPU 사용량을 가져오는 몇 가지 방법을 안내합니다. 이 글을 다 읽고 나면 이러한 기법을 효과적으로 구현하는 방법을 확실히 파악하여 CPU 성능을 실시간으로 모니터링할 수 있게 될 것입니다. 바로 시작하겠습니다!
방법 1: psutil 라이브러리 사용
Python에서 CPU 사용량을 가져오는 가장 인기 있는 방법 중 하나는 psutil 라이브러리를 사용하는 것입니다. 이 라이브러리는 CPU, 메모리, 디스크, 네트워크를 비롯한 시스템 사용량 정보를 가져오는 인터페이스를 제공하는 강력한 도구입니다. 시작하려면 psutil을 설치해야 합니다. pip를 이용해 설치할 수 있습니다.
pip install psutil
설치가 끝나면 다음 코드로 CPU 사용량을 가져올 수 있습니다.
import psutil
cpu_usage = psutil.cpu_percent(interval=1)
print(f"Current CPU Usage: {cpu_usage}%")
출력:
Current CPU Usage: 15.0%
이 코드 조각은 psutil 라이브러리를 가져와 cpu_percent 메서드를 호출합니다. interval 매개변수는 CPU 사용량을 계산하기 전에 대기할 시간을 초 단위로 지정합니다. 이 경우 1초를 기다린 뒤 사용 중인 CPU의 비율을 반환합니다. 이 방법은 간단하고 실시간 데이터를 제공하므로 성능 모니터링에 훌륭한 선택입니다.
방법 2: os 라이브러리 사용
Python에서 CPU 사용량을 가져오는 또 다른 방법은 내장 os 라이브러리를 사용하는 것입니다. psutil만큼 포괄적이지는 않을 수 있지만 CPU 사용량에 대한 기본 정보는 제공할 수 있습니다. 방법은 다음과 같습니다.
import os
cpu_usage = os.popen("wmic cpu get loadpercentage").read()
print(f"Current CPU Usage: {cpu_usage.strip()}")
출력:
Current CPU Usage: 15
이 코드에서는 os.popen() 함수를 사용하여 Windows 시스템에서 CPU 부하 비율을 가져오는 셸 명령을 실행합니다. wmic cpu get loadpercentage 명령은 현재 CPU 부하를 가져옵니다. read() 메서드가 출력을 캡처하고, 그 출력이 인쇄됩니다. 이 방법은 플랫폼에 따라 달라지며 주로 Windows에서 동작한다는 점에 유의하세요. Unix 계열 시스템을 사용 중이라면 다른 명령을 사용하는 편이 좋습니다.
방법 3: subprocess 모듈 사용
셸 명령 실행과 그 출력 캡처를 더 세밀하게 제어하고 싶다면 subprocess 모듈이 훌륭한 선택입니다. 이 방법은 다양한 운영 체제에서 사용할 수 있어 다재다능합니다. subprocess를 이용해 CPU 사용량을 가져오는 방법은 다음과 같습니다.
import subprocess
cpu_usage = subprocess.check_output("top -bn1 | grep 'Cpu(s)'", shell=True).decode('utf-8')
print(f"Current CPU Usage: {cpu_usage.split()[1]}")
출력:
Current CPU Usage: 15.0
이 예제에서는 subprocess.check_output()을 사용하여 시스템 프로세스의 동적인 실시간 보기를 제공하는 top 명령을 실행합니다. -bn1 플래그는 명령에 배치 모드로 실행하고 한 번만 출력하라고 지시합니다. 그런 다음 ‘Cpu(s)‘가 포함된 줄을 찾고 출력을 문자열 형식으로 디코딩합니다. 마지막으로 문자열을 나누어 CPU 사용량 비율을 추출합니다. 이 방법은 강력하고 유연하여 필요에 따라 명령을 사용자 지정할 수 있습니다.
방법 4: platform 모듈 사용
다양한 플랫폼에서 원활하게 동작하는 방법을 원한다면 platform 모듈을 다른 방법과 결합하여 호환성을 보장할 수 있습니다. 운영 체제를 기준으로 CPU 사용량을 가져오는 방법은 다음과 같습니다.
import platform
import psutil
if platform.system() == "Windows":
cpu_usage = psutil.cpu_percent(interval=1)
elif platform.system() == "Linux":
cpu_usage = psutil.cpu_percent(interval=1)
else:
cpu_usage = "Unsupported OS"
print(f"Current CPU Usage: {cpu_usage}")
출력:
Current CPU Usage: 15.0%
이 코드에서는 먼저 platform.system()을 이용해 운영 체제를 확인합니다. Windows인지 Linux인지에 따라 psutil.cpu_percent()를 호출해 CPU 사용량을 가져옵니다. 운영 체제가 지원되지 않으면 그 사실을 알리는 메시지를 반환합니다. 이 방법은 다양한 환경에서 실행되어야 하는 애플리케이션에서 특히 유용한데, OS를 기준으로 올바른 방법이 적용되도록 보장하기 때문입니다.
결론
이 글에서는 Python에서 현재 CPU 사용량을 가져오는 다양한 방법을 살펴보았습니다. psutil 라이브러리 활용부터 os와 subprocess로 셸 명령을 실행하는 것까지, 각 방법에는 장점과 사용 사례가 있습니다. 구체적인 요구 사항에 따라 필요에 가장 잘 맞는 방법을 선택할 수 있습니다. CPU 사용량을 모니터링하는 것은 성능을 최적화하고 애플리케이션이 원활하게 실행되도록 보장하는 데 필수적입니다. 이제 이러한 기법을 갖추었으니 Python 프로젝트에서 CPU 성능을 효과적으로 추적할 수 있습니다.
FAQ
-
Python에서 CPU 사용량을 모니터링하는 데 가장 좋은 라이브러리는 무엇입니까?
psutil라이브러리는 포괄적인 기능과 사용 편의성 덕분에 최상의 선택으로 널리 알려져 있습니다. -
Python을 사용하면 어떤 운영 체제에서든 CPU 사용량을 가져올 수 있습니까?
네, 플랫폼별 명령이나psutil같은 라이브러리를 사용하면 다양한 운영 체제에서 CPU 사용량을 가져올 수 있습니다. -
CPU 사용량 정보는 실시간입니까?
네,psutil.cpu_percent(interval=1)같은 방법은 실시간 CPU 사용량 데이터를 제공합니다. -
psutil 라이브러리는 어떻게 설치합니까?
psutil은 pip를 이용해pip install psutil명령으로 설치할 수 있습니다. -
CPU 사용량을 지속적으로 모니터링할 수 있습니까?
네, Python 스크립트에 루프를 설정하여 지정한 간격으로 CPU 사용량을 지속적으로 모니터링할 수 있습니다.