windows – 连续监视前X个进程的CPU使用率百分比
我希望能够每5秒向顶级CPU消费者输出一个日志文件.这样我就可以在测试期间看到谁使用了大部分cpu.
我发现这个答案很常见: $cpu = Get-Counter -ComputerName localhost "Process(*)% Processor Time" ` | Select-Object -ExpandProperty countersamples ` | where {$_.InstanceName -ne 'idle' } ` | where {$_.InstanceName -ne '_total' }` | Select-Object -Property instancename,cookedvalue ` | Sort-Object -Property cookedvalue -Descending ` | Select-Object -First 5 ` | ft @{L='Date';E={Get-Date}},InstanceName,@{L='CPU';E={(($_.Cookedvalue/100)/$NumberOfLogicalProcessors).toString('P')}} -HideTableHeaders ` | Format-Table -Auto | Out-String 我有2个问题: >有时我得到:
>我想获得完整的流程名称,而不是 java 25% idea64 0.8% ... 解决方法
我将尝试使用以下脚本立即回答您的两个问题:
Get-Counter "Process(*)% Processor Time" -ErrorAction SilentlyContinue ` | select -ExpandProperty CounterSamples ` | where {$_.Status -eq 0 -and $_.instancename -notin "_total","idle"} ` | sort CookedValue -Descending ` | select TimeStamp,@{N="Name";E={ $friendlyName = $_.InstanceName try { $procId = [System.Diagnostics.Process]::GetProcessesByName($_.InstanceName)[0].Id $proc = Get-WmiObject -Query "SELECT ProcessId,ExecutablePath FROM Win32_Process WHERE ProcessId=$procId" $procPath = ($proc | where { $_.ExecutablePath } | select -First 1).ExecutablePath $friendlyName = [System.Diagnostics.FileVersionInfo]::GetVersionInfo($procPath).FileDescription } catch { } $friendlyName }},@{N="CPU";E={($_.CookedValue/100/$env:NUMBER_OF_PROCESSORS).ToString("P")}} -First 5 ` | ft -a -HideTableHeaders 这导致下表: 24.07.2016 21:00:53 Microsoft Edge Content Process 9,68% 24.07.2016 21:00:53 system 0,77% 24.07.2016 21:00:53 Microsoft Edge 0,39% 24.07.2016 21:00:53 runtimebroker 0,39% 24.07.2016 21:00:53 Host Process for Windows Services 0,39% >按照规定,您有时会得到:
这与Windows环境中的进程管理有关.在执行查询时,可能会出现一些进程,其中一些可能会消失(即wmiprvse进程负责执行wmi查询).某些进程可能需要您拥有更多权限.这一切都在获取过程信息时导致错误.可以使用-ErrorAction SilentlyContinue开关安全地跳过它,并使用Status -eq 0表达式进行过滤. >您还希望看到更友好的流程名称.我不知道使用GetVersionInfo方法获取该名称是否比使用可执行文件本身更好.如果此类信息可用,FileDescription属性将存储该值.如果它不可用,则使用非友好的进程名称. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- wpf窗口完全黑色
- windows – 如何在Visual Studio 2008 xml编辑器中编辑工作
- windows – WaitForSingleObject是否放弃了线程的时间片?
- windows – 无法升级SVN工作副本
- .net – 无法在Windows Server 2008 R2上的IIS7.5中运行net
- windows – 使用批处理从文件中读取带空格的行
- ViewMinder方向与Windows Phone 7芒果PhotoCamera
- windows-server-2008-r2 – 服务器08 RDP:如果已经连接了相
- windows-mobile – 使Windows Mobile设备模拟蓝牙HID设备
- windows – 如何针对流行的病毒扫描程序测试我的应用程序?
- 双重身份验证——加强Windows安全性
- Windows – 命令提示符下的基本文本编辑器?
- LeetCode-76-Minimum Window Substring
- Windows 7 – Cygwin SSH的目录权限(Windows 7)
- windows下编译支持https的curl静态库
- Windows和Linux之间的Python Multiprocess差异
- 2018-2019-2 20165313 Exp2 后门原理与实践
- .net – WinRT中是否有“IsInDesignMode”属性?
- Windows – 如何检查所有Active Directory服务和
- 将Windows Server 2000从IDE驱动器移动到SATA驱动