본문 바로가기
Windows/PowerShell

PowerShell | CPU, 메모리, 컴퓨터 자원 확인하기

by 지혜를 탐구하는 오딘 2022. 6. 20.
반응형
반응형

 

 

1. 컴퓨터 자원 확인하는 이유

개인 컴퓨터든 서버 컴퓨터든 컴퓨터의 자원(컴퓨터 자원🔗   : 위키피디아; 시스템  리소스)을 얼마나 사용하는지 알고 싶을 때가 있다. Endpoint, 단말 사용자는 대부분 Windows를 사용한다.(이러니 빌 형이...)

컴퓨터가 느려졌을 때에, 작업 관리자(Ctrl + Alt + Del)를 실행 시켜서 필요없는(혹은 사용하지 않는, 응답하지 않는) 프로세스를 종료한 경험이 있다면, 그 옆 프로세스, 메모리, 디스크, 네트워크를 볼 수 있었을 것이다.

그때 어떤 프로세스가 얼만큼의 컴퓨터 자원을 갖고 있는지, 어떤 프로세스가 컴퓨터  자원을 얼마나 잡고 있는지, 등을 확인 할 수 있다.

이 때에 필요 없는(사용하고 있지 않는) 프로세스(프로그램)를 종료해서 여유 시스템 자원을 확보할 수 있다.

 

(바쁘면 제일 아래로 가자)

 

2. 그래픽 환경에서 컴퓨터 자원 확인하는 방법

"Ctrl + Alt + Delete" 키를 눌러서(혹은 다른 방법으로든) "작업 관리자"의 "성능"탭에서 확인 할 수 있다.

작업관리자에서 시스템 자원(리소스)을 확인하는 모습

 

 

 

3. PowerShell 로 컴퓨터 자원 확인하는 이유?

작업 관리자에서 확인할 수 있는데, 굳이 PowerShell 혹은 cmd 창에서 확인할 이유는 없다. 하지만 추가적으로 다른 작업을 하기 위해서는 PowerShell 혹은 명령어프롬프트를 사용해서 컴퓨터 자원을 확인하는 것이 좋다.

이를 테면, PowerShell로 자원을 측정하는 것은 어떤 순간의 자원을 측정하기 때문에 실시간 변화량을 기록할 때에도 사용할 수 있다.(작업관리자에서 그래프로 나오기도 한다)

 

4. PowerShell 에서 컴퓨터 자원 확인하는 방법

4-1. CPU 사용량 확인하기

(Get-WmiObject win32_processor).LoadPercentage

호스트네임은 혹시 모를 오류를 줄이기 위해서 입력했으나, 입력하지 않아도 무방하다.

 

4-2. 메모리 용량 확인하기 및 기타

# 전체 메모리 크기
$total_memory = (Get-WmiObject win32_OperatingSystem).TotalVisualMemorySize

# 여유 메모리 크기
$free_memory = (Get-WmiObject win32_OperatingSystem).FreePhysicalMemory

# 사용 중 메모리 크기
$using_memory = $total_memory - $free_memory

작업관리자에 나오는 내용은, 위 명령어의 결괏값을 가공하면 된다.

 

 

(전체 코드 보기)

코드 보기👇

더보기
Function Print-MachineInfo()
{
    # CPU 사용량
    $CPU = (Get-WmiObject win32_processor).LoadPercentage

    # 메모리 정보 불러오기
    $Operating_system = Get-WmiObject win32_OperatingSystem

    # 전체 메모리 크기
    $total_memory = $Operating_system.TotalVisibleMemorySize    # KiloByte 단위 출력
    $total_memory_gb = [Math]::Round($total_memory / 1024 / 1024, 1)    # GB 변환

    # 여유 메모리 크기 
    $free_memory = $Operating_system.FreePhysicalMemory    # KiloByte 단위

    # 사용 중 메모리 크기
    $using_memory = $total_memory - $free_memory    # KiloByte 단위
    $using_memory_gb = [Math]::Round($using_memory / 1024 / 1024, 1)	# GB 변환

    # 메모리 사용률 (%)
    $memory_usage_rate = [Math]::Round(($total_memory - $free_memory) * 100 / $total_memory, 1)

    ## 결과 출력
    Write-Host "CPU (%) :: $CPU (%)"
    Write-Host "Memory :: $using_memory_gb GB / $total_memory_gb GB ($memory_usage_rate %)"
}

 

 

 

 

 

 

 

 

 

 

728x90
반응형

댓글