gpt4 book ai didi

powershell - Powershell 中所有进程的 CPU 和内存使用率百分比

转载 作者:行者123 更新时间:2023-12-04 02:22:32 29 4
gpt4 key购买 nike

有没有办法查看 PowerShell 中所有正在运行的进程的 CPU 和内存利用率百分比?

我尝试了以下方法:

Get-Process | %{"Process={0} CPU_Usage={1} Memory_Usage={2}" -f $_.ProcessName,[math]::Round($_.CPU),[math]::Round($_.PM/1MB)}

连同它,我已经解析了这些信息并从总内存中计算了内存使用百分比,但无法获得相同的 CPU,因为通过此命令它显示进程中的 CPU 时间划分而不是本身的利用率。

使用以下命令获取总内存和总 CPU 利用率:
  • 总物理内存
    Get-WmiObject Win32_OperatingSystem | %{"{0}" -f $_.totalvisiblememorysize}
  • CPU 总利用率
    Get-WmiObject Win32_Processor | Select-Object -expand LoadPercentage

  • 任何帮助,将不胜感激。我需要以下格式:
    PROCESS=process_name CPU=percent_cpu_utilization_by_process MEMORY=percent_memory_utilization_by_process

    最佳答案

    您可以使用 WMI对象 Win32_PerfFormattedData_PerfProc_Process收集所有这些数据。

    Get-WmiObject Win32_PerfFormattedData_PerfProc_Process `
    | Where-Object { $_.name -inotmatch '_total|idle' } `
    | ForEach-Object {
    "Process={0,-25} CPU_Usage={1,-12} Memory_Usage_(MB)={2,-16}" -f `
    $_.Name,$_.PercentProcessorTime,([math]::Round($_.WorkingSetPrivate/1Mb,2))
    }

    如果您需要占总内存百分比的内存,您可以在开始时添加以下内容以获得系统中的总 RAM。
    $RAM= Get-WMIObject Win32_PhysicalMemory | Measure -Property capacity -Sum | %{$_.sum/1Mb} 

    然后更改 WorkingSetPrivate计算如下
    ([math]::Round(($_.WorkingSetPrivate/1Mb)/$RAM*100,2))

    备注 此中的 CPU 统计信息 WMI对象四舍五入到最近的现在,我已经计算了当前使用的内存(以兆字节为单位)。有关此类的更多信息,请参阅此 link .

    关于powershell - Powershell 中所有进程的 CPU 和内存使用率百分比,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39244580/

    29 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com