PowerShell을 사용하여 CPU 및 RAM 사용량 찾는 방법

  1. PowerShell을 사용하여 CPU 및 RAM 사용량 찾기: Get-Counter 사용하기
  2. PowerShell을 사용하여 CPU 및 RAM 사용량 찾기: Get-WmiObject 사용하기
  3. PowerShell을 사용하여 CPU 및 RAM 사용량 찾기: Get-Process 사용하기
  4. 결론
PowerShell을 사용하여 CPU 및 RAM 사용량 찾는 방법

기술이 발전함에 따라 효율적인 시스템 모니터링의 필요성은 점점 더 중요해지고 있습니다. Windows 관리자는 종종 Windows 머신에서 최적의 시스템 성능을 위해 CPU 및 RAM 사용량을 신속하고 효과적으로 평가할 방법을 찾습니다.

이 기사에서는 Windows 환경에서 다재다능한 스크립팅 언어인 PowerShell의 강력한 기능을 탐구하고 CPU 및 RAM 사용량을 손쉽게 찾아 모니터링하는 방법을 알아보겠습니다.

PowerShell의 기능을 활용함으로써 사용자는 시스템의 메모리 사용량에 대한 실시간 통찰력을 얻을 수 있으며, 이를 통해 정보에 기반한 결정을 내리고 원활한 컴퓨팅 경험을 보장할 수 있습니다.

PowerShell을 사용하여 CPU 및 RAM 사용량 찾기: Get-Counter 사용하기

PowerShell은 강력한 cmdlet을 통해 실시간 성능 데이터 검색에 대한 강력한 솔루션을 제공합니다. 그 중 하나인 Get-Counter cmdlet은 이 정보를 액세스하는 다재다능하고 효율적인 방법을 제공합니다.

Get-Counter cmdlet을 사용하면 로컬 또는 원격 머신에서 성능 카운터 데이터를 검색할 수 있습니다. CPU 및 RAM 사용량을 모니터링하기 위해 특정 성능 카운터 경로를 사용할 수 있습니다.

기본 구문은 다음과 같습니다:

Get-Counter -Counter "\CounterPath"

CPU 사용량의 경우 카운터 경로는 '\Processor(_Total)\% Processor Time'이며, RAM 사용량의 경우는 '\Memory\Available MBytes'입니다.

PowerShell을 사용하여 CPU 및 메모리 사용량 찾기: Get-Counter 코드 예제

Get-Counter를 사용하여 CPU 및 RAM 사용량을 모니터링하는 완전한 작동 코드 예제를 살펴보겠습니다:

# PowerShell get memory usage
Get-Counter '\Processor(_Total)\% Processor Time' -Continuous | ForEach-Object {
    $cpuUsage = $_.CounterSamples.CookedValue
    Write-Host "Current CPU Usage: $cpuUsage%"
}

Get-Counter '\Memory\Available MBytes' -Continuous | ForEach-Object {
    $ramUsage = $_.CounterSamples.CookedValue
    Write-Host "Available RAM: ${ramUsage}MB"
}

코드의 각 섹션을 분해하여 기능을 이해해 보겠습니다.

CPU 사용량 모니터링:

Get-Counter '\Processor(_Total)\% Processor Time' -Continuous | ForEach-Object {
    $cpuUsage = $_.CounterSamples.CookedValue
    Write-Host "Current CPU Usage: $cpuUsage%"
}

첫 번째 부분에서는 Get-Counter를 사용하여 사용된 총 프로세서 시간 비율에 대한 실시간 데이터를 검색합니다. 지정된 카운터 경로 '\Processor(_Total)\% Processor Time'은 모든 코어에서의 전체 CPU 사용량을 목표로 합니다.

-Continuous 매개변수는 명령이 지속적으로 실행되도록 보장하여 실시간 업데이트를 제공하며 CTRL+C가 눌릴 때까지 정지하지 않습니다.

Get-Counter의 출력은 이후 ForEach-Object 루프를 통해 전달됩니다. 수신된 각 카운터 샘플에 대해 스크립트는 처리된 값(CookedValue)을 추출하여 현재 CPU 사용량 비율을 나타냅니다.

이 값은 변수 $cpuUsage에 저장되며, PowerShell 함수 Write-Host를 사용하여 현재 CPU 사용량이 콘솔에 출력됩니다.

코드 출력:

파워셸 메모리 백분율

메모리 사용량(RAM) 모니터링:

Get-Counter '\Memory\Available MBytes' -Continuous | ForEach-Object {
    $ramUsage = $_.CounterSamples.CookedValue
    Write-Host "Available RAM: ${ramUsage}MB"
}

스크립트의 두 번째 부분은 메모리 비율 모니터링에 중점을 둡니다. CPU 섹션과 유사하게, Get-Counter를 사용하여 카운터 경로 '\Memory\Available MBytes'를 통해 메가바이트로 사용 가능한 메모리에 대한 데이터를 지속적으로 검색합니다.

-Continuous 매개변수는 지속적인 모니터링을 보장합니다.

다시 한 번 출력은 ForEach-Object 루프에서 처리됩니다. 수신된 각 카운터 샘플에 대해 스크립트는 RAM에서 사용 가능한 바이트를 나타내는 처리된 값을 추출하고 이를 변수 $ramUsage에 저장합니다.

마지막 단계에서는 Write-Host를 사용하여 콘솔에 사용 가능한 RAM 정보를 표시합니다.

코드 출력:

파워셸 메모리 사용량 가져오기

이러한 실시간 정보의 표시는 시스템 관리자와 사용자에게 모두 귀중하며, 성능 문제를 신속하게 식별하고 해결할 수 있게 합니다. Get-Counter는 CPU 및 RAM 사용량 모니터링 과정을 간소화하여 PowerShell 도구 모음에서 필수 도구가 됩니다.

PowerShell을 사용하여 CPU 및 RAM 사용량 찾기: Get-WmiObject 사용하기

Get-Counter cmdlet 외에도 PowerShell은 CPU 및 RAM 사용량을 포함한 시스템 정보를 수집하기 위한 또 다른 강력한 도구인 Get-WmiObject를 제공합니다.

Get-WmiObject cmdlet을 사용하면 Windows 관리 도구(WMI) 클래스를 액세스하여 시스템에 대한 풍부한 정보를 얻을 수 있습니다. CPU 및 물리적 메모리 사용량을 모니터링하기 위해 특정 WMI 클래스와 속성을 질의합니다.

기본 구문은 다음과 같습니다:

Get-WmiObject -Class WMI_Class | Select-Object Property1, Property2, ...

CPU 사용량을 위해서는 Win32_Processor 클래스를 사용하며, RAM 또는 물리적 메모리 사용량을 위해서는 Win32_OperatingSystem 클래스를 사용합니다.

PowerShell을 사용하여 CPU 및 RAM 사용량 찾기: Get-WmiObject 코드 예제

Get-WmiObject를 사용하여 CPU 및 RAM 사용량을 모니터링하는 완전한 작동 코드 예제를 살펴보겠습니다:

# PowerShell get memory usage of all the processes
$cpuObject = Get-WmiObject -Class Win32_Processor
$cpuLoadPercentage = $cpuObject.LoadPercentage
Write-Host "CPU Load Percentage: $cpuLoadPercentage"

$ramObject = Get-WmiObject -Class Win32_OperatingSystem
$ramUsageGB = [math]::Round(($ramObject.TotalVisibleMemorySize - $ramObject.FreePhysicalMemory) / 1GB, 2)
Write-Host "Available RAM: ${ramUsageGB}GB"

위의 PowerShell 스크립트 각 섹션을 나누어 기능을 이해해 보겠습니다.

CPU 사용량 모니터링:

$cpuObject = Get-WmiObject -Class Win32_Processor
$cpuLoadPercentage = $cpuObject.LoadPercentage
Write-Host "CPU Load Percentage: $cpuLoadPercentage"

여기에서 스크립트는 먼저 Get-WmiObject를 사용하여 시스템 프로세서에 대한 세부 정보를 포함하는 Win32_Processor 클래스에서 정보를 조회합니다. 얻어진 정보는 변수 $cpuObject에 저장됩니다.

그 후, 스크립트는 $cpuObject에서 LoadPercentage 속성을 추출하여 현재 CPU 부하 비율을 나타냅니다. 이 값은 변수 $cpuLoadPercentage에 저장됩니다.

마지막으로, CPU 부하 비율을 콘솔에 출력하기 위해 Write-Host를 사용하여 메시지를 표시합니다.

코드 출력:

파워셸 총 메모리 사용량

메모리 사용량(RAM) 모니터링:

$ramObject = Get-WmiObject -Class Win32_OperatingSystem
$ramUsageGB = [math]::Round(($ramObject.TotalVisibleMemorySize - $ramObject.FreePhysicalMemory) / 1GB, 2)
Write-Host "Available RAM: ${ramUsageGB}GB"

RAM 모니터링 섹션에서 스크립트는 Get-WmiObject를 사용하여 메모리 관련 세부 정보를 포함한 다양한 속성을 가진 Win32_OperatingSystem 클래스에서 정보를 검색합니다. 획득한 정보는 변수 $ramObject에 저장됩니다.

그 다음, 스크립트는 총 물리적 메모리 또는 총 가시 메모리 크기(TotalVisibleMemorySize)에서 빈 물리적 메모리(FreePhysicalMemory)를 빼서 기가바이트 단위로 사용 가능한 RAM을 계산합니다. 결과는 보다 깔끔한 출력을 위해 [math]::Round를 사용하여 소수점 둘째 자리까지 반올림됩니다.

기가바이트 단위의 사용 가능한 RAM 값은 변수 $ramUsageGB에 저장됩니다. 마지막으로, Write-Host를 사용하여 콘솔에 사용 가능한 RAM을 표시합니다.

코드 출력:

파워쉘 무료 메모리

Get-WmiObject cmdlet을 사용하여 검색된 이 정보는 시스템 성능에 대한 귀중한 통찰력을 제공하며, 사용자가 리소스 활용도를 효과적으로 모니터링하고 시스템 최적화를 위한 정보에 기반한 결정을 내릴 수 있게 합니다. 스크립트의 단순성과 명확성은 관리자와 사용자 모두를 위한 다재다능한 도구로 만듭니다.

PowerShell을 사용하여 CPU 및 RAM 사용량 찾기: Get-Process 사용하기

PowerShell을 사용하여 시스템 성능을 모니터링하는 방법을 탐구하는 과정의 일환으로, 이제 Get-Process cmdlet에 초점을 맞추겠습니다. Get-CounterGet-WmiObject와는 달리, Get-Process는 로컬 머신에서 실행 중인 프로세스에 대한 정보를 제공하여 CPU 및 메모리 비율 세부 정보를 추출할 수 있게 합니다.

Get-Process cmdlet은 로컬 또는 원격 컴퓨터에서 현재 실행 중인 프로세스에 대한 정보를 검색합니다. CPU 및 RAM 사용량을 모니터링하기 위해 출력에서 관련 정보를 필터링하고 추출할 것입니다.

기본 구문은 다음과 같습니다:

Get-Process -Name "ProcessName" | Select-Object Property1, Property2, ...

CPU 사용량의 경우 CPU 속성에, RAM 사용량의 경우 WorkingSet 속성에 주목합니다.

PowerShell을 사용하여 CPU 및 RAM 사용량 찾기: Get-Process 코드 예제

Get-Process를 사용하여 CPU 및 RAM 사용량을 모니터링하는 완전한 작동 코드 예제를 살펴보겠습니다:

# PowerShell get memory usage
$cpuProcesses = Get-Process | Sort-Object CPU -Descending | Select-Object -First 5
ForEach ($process in $cpuProcesses) {
    $processName = $process.ProcessName
    $cpuUsage = $process.CPU
    Write-Host "Process: $processName, CPU Usage: $cpuUsage%"
}

$ramProcesses = Get-Process | Sort-Object WorkingSet -Descending | Select-Object -First 5
ForEach ($process in $ramProcesses) {
    $processName = $process.ProcessName
    $ramUsageMB = [math]::Round($process.WorkingSet / 1MB, 2)
    Write-Host "Process: $processName, RAM Usage: ${ramUsageMB}MB"
}

이전 예제와 유사하게 이 PowerShell 스크립트는 또한 두 개의 섹션으로 구성되어 있습니다: 하나는 CPU 사용량에 중점을 두고, 다른 하나는 RAM 사용량에 중점을 둡니다. 코드를 각 섹션별로 분해해 보겠습니다.

CPU 사용량 모니터링:

$cpuProcesses = Get-Process | Sort-Object CPU -Descending | Select-Object -First 5
ForEach ($process in $cpuProcesses) {
    $processName = $process.ProcessName
    $cpuUsage = $process.CPU
    Write-Host "Process: $processName, CPU Usage: $cpuUsage%"
}

첫 번째 코드 섹션에서 스크립트는 시스템에서 실행 중인 모든 프로세스에 대한 정보를 검색하기 위해 Get-Process를 사용하여 시작합니다. 출력은 이후 CPU 사용량을 기준으로 내림차순으로 정렬됩니다.

Select-Object -First 5는 CPU 사용량이 가장 높은 상위 5개 프로세스만 고려하도록 보장합니다. 결과 프로세스는 변수 $cpuProcesses에 저장됩니다.

ForEach 루프가 사용되어 $cpuProcesses의 각 프로세스 개체를 반복합니다. 각 프로세스에 대해 스크립트는 프로세스 이름(ProcessName)과 CPU 사용량(CPU)을 추출합니다.

이 정보는 Write-Host를 사용하여 콘솔에 표시되며, 프로세스 이름과 해당 CPU 사용량 비율이 함께 나타납니다.

코드 출력:

파워셸 메모리 백분율

메모리 사용량(RAM) 모니터링:

$ramProcesses = Get-Process | Sort-Object WorkingSet -Descending | Select-Object -First 5
ForEach ($process in $ramProcesses) {
    $processName = $process.ProcessName
    $ramUsageMB = [math]::Round($process.WorkingSet / 1MB, 2)
    Write-Host "Process: $processName, RAM Usage: ${ramUsageMB}MB"
}

두 번째 코드 섹션에서도 유사한 접근 방식이 사용됩니다. 다시 한 번 Get-Process를 사용하여 모든 실행 중인 프로세스에 대한 정보를 수집합니다.

출력은 이후 RAM 사용량(WorkingSet) 기준으로 내림차순으로 정렬되며, 상위 5개 실행 프로세스만 선택됩니다. 결과 프로세스는 변수 $ramProcesses에 저장됩니다.

ForEach 루프가 사용되어 $ramProcesses의 각 프로세스를 반복합니다. 각 프로세스에 대해 스크립트는 프로세스 이름을 추출하고 RAM 사용량을 메가바이트 단위로 계산합니다.

계산 과정에서는 작업 집합 크기를 1메가바이트로 나눈 후 [math]::Round를 사용하여 결과를 소수점 둘째 자리까지 반올림합니다. 이 정보는 Write-Host를 사용하여 콘솔에 표시되며, 프로세스 이름과 함께 RAM 사용량을 메가바이트 단위로 나타냅니다.

코드 출력:

파워셸 메모리 사용량

이 스크립트는 CPU와 메모리 사용량 모니터링을 위한 동적 접근 방식을 제공하며, 가장 리소스를 소모하는 프로세스에 중점을 둡니다. Get-Process의 기능을 활용함으로써 관리자와 사용자는 시스템에서 리소스를 소모하는 활동에 대한 통찰력을 얻을 수 있습니다.

결론

CPU 및 RAM 사용량 모니터링은 건강하고 반응성이 좋은 컴퓨팅 환경을 유지하는 데 필수적입니다. PowerShell은 다양한 cmdlet을 통해 Get-Counter, Get-WmiObject, Get-Process와 같은 강력한 도구를 제공하여 이 과정을 간소화합니다.

실시간 업데이트, 자세한 WMI 클래스 정보 또는 개별 프로세스에 대한 통찰력을 선호하든, PowerShell은 다양한 모니터링 요구사항을 충족하는 유연한 솔루션을 제공합니다. 이러한 기술을 시스템 관리 도구 모음에 통합하면 CPU 및 RAM 사용량에 대한 정보를 손쉽게 파악하고, 적시의 개입 및 능동적인 시스템 최적화를 통해 원활한 관리가 가능합니다.

튜토리얼이 마음에 드시나요? DelftStack을 구독하세요 YouTube에서 저희가 더 많은 고품질 비디오 가이드를 제작할 수 있도록 지원해주세요. 구독하다
Rohan Timalsina avatar Rohan Timalsina avatar

Rohan is a learner, problem solver, and web developer. He loves to write and share his understanding.

LinkedIn Website