主题:监控Linux/Windows服务器CPU、内存使用率TOP5的服务进程
内容:
一、Windows系统监控CPU、内存使用率TOP5的进程
1、编写脚本monitor.ps1
# 获取CPU使用率前5的服务进程,无法直接获取使用率,该值为“进程已用于所有处理器的处理器时间量,以秒为单位”
$cpuTop5 = Get-Process | Sort-Object CPU -Descending | Select-Object -First 5 | Select-Object CPU,Name,Id | Format-Table -AutoSize
# 获取内存使用率前5的服务进程,获取值为内存使用量(KB),已转换成了MB
$memoryTop5 = Get-Process | Sort-Object WorkingSet64 -Descending | Select-Object -First 5 | Select-Object @{Name="Memory";Expression={$_.WorkingSet64 / 1MB}},Name,Id | Format-Table -AutoSize
Write-Host "CPU使用率最高的前5个服务进程:"
$cpuTop5 | ForEach-Object {
Write-Host "CPU工作时间量(秒): $($_.CPU), 服务进程名称: $($_.Name), 进程ID: $($_.Id)"
}
Write-Host ""
Write-Host "内存使用率最高的前5个服务进程:"
$memoryTop5 | ForEach-Object {
Write-Host "当前内存使用: $($_.Memory) MB, 服务进程名称: $($_.Name),