You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

请求提供将CPU利用率转换为百分比的PowerShell命令

获取进程CPU利用率百分比的PowerShell命令

你当前使用的Get-Process命令返回的CPU属性是进程启动以来累计使用的CPU时间(单位:秒),并非实时的CPU利用率百分比。以下是两种可靠的转换方法:

方法1:使用系统性能计数器(推荐)

直接调用Windows性能计数器获取实时CPU利用率,这是最准确的方式:

# 获取名称匹配cbft*的进程CPU利用率,保留两位小数并按降序排序
Get-Counter "\Process(cbft*)\% Processor Time" | 
    Select-Object -ExpandProperty CounterSamples | 
    Select-Object 
        @{Name='ProcessName'; Expression={$_.InstanceName}},
        @{Name='CPUUsagePercent'; Expression={[math]::Round($_.CookedValue, 2)}} | 
    Sort-Object CPUUsagePercent -Descending

如果要匹配多个进程(比如particular*和cbft*),可修改计数器路径:

Get-Counter "\Process(particular*)\% Processor Time", "\Process(cbft*)\% Processor Time" | 
    Select-Object -ExpandProperty CounterSamples | 
    Select-Object 
        @{Name='ProcessName'; Expression={$_.InstanceName}},
        @{Name='CPUUsagePercent'; Expression={[math]::Round($_.CookedValue, 2)}} | 
    Sort-Object CPUUsagePercent -Descending

方法2:通过两次采样计算差值

通过两次获取Get-Process的CPU累计值,结合时间差和CPU核心数计算百分比,适合自定义采样间隔的场景:

# 第一次采集进程数据
$firstSample = Get-Process -Name cbft* | Select-Object ProcessName, CPU, @{Name='SampleTime'; Expression={Get-Date}}
# 设置采样间隔(这里为1秒,可按需调整)
Start-Sleep -Seconds 1
# 第二次采集进程数据
$secondSample = Get-Process -Name cbft* | Select-Object ProcessName, CPU, @{Name='SampleTime'; Expression={Get-Date}}

# 计算并输出CPU利用率百分比
$coreCount = (Get-CimInstance Win32_Processor).NumberOfLogicalProcessors
Compare-Object $firstSample $secondSample -Property ProcessName -PassThru |
    Select-Object ProcessName,
        @{
            Name='CPUUsagePercent';
            Expression={
                $cpuDelta = $_.CPU - $_.CPU_Previous
                $timeDelta = ($_.SampleTime - $_.SampleTime_Previous).TotalSeconds
                [math]::Round(($cpuDelta / ($timeDelta * $coreCount)) * 100, 2)
            }
        } |
    Sort-Object CPUUsagePercent -Descending

关键说明

  • 性能计数器返回的% Processor Time是进程占用所有逻辑核心总性能的百分比(比如4核CPU下,单个进程满负荷运行会显示400%)。
  • 方法2中,$coreCount获取的是逻辑核心数,用于将累计CPU时间转换为实际利用率百分比。

内容的提问来源于stack exchange,提问作者shankar_sn5

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 13:01:04