我有一台安装了 Windows Server Core 的服务器,我正在尝试使用 resmon 实现故障排除能力对等,该功能仅在 Windows Server GUI 安装中可用。我相信我可以识别 Core 中的资源瓶颈,但无法访问 resmon 限制了我识别瓶颈来源的能力。
是否有任何 powershell、cmd 或远程 gui 方法可以识别进程和文件的磁盘资源使用情况?网络也是如此,可以识别每个连接和进程使用了多少带宽。
在 Linux 中,有 iftop 和 iotop 等命令行程序可以在 ssh 终端中显示这些数据;Server Core 上也可以运行类似的程序。
下面是我感兴趣的信息的图片。如果能够实时或接近实时地从 Windows Server Core 获取这些信息就太好了。
答案1
远程 perfmon 是一种方法。由于您引用了基于 GUI 和 CLI 的目标,我不确定您最感兴趣的是哪一个。有许多用于性能计数器的 WMI 类(使用 列出gwmi -list Win32_PerfFormattedData* |select name
)可以在 CLI 上显示此信息或用于脚本。这里有一个快速函数,它将向您显示最大的消费者,直到您中断/CTRL-C。
function topIO {
while ($true) {
gwmi Win32_PerfFormattedData_PerfProc_Process | select name,idprocess,IODataBytesPersec | sort -desc IODataBytesPersec | select -first 5
start-sleep 1
""
}
}
输出
name idprocess IODataBytesPersec
---- --------- -----------------
csrss 8172 45
_Total 0 45
svchost#3 4480 0
svchost#4 1744 0
svchost#1 9576 0
Resili... 5276 281
_Total 0 281
svchost#2 1792 0
svchost#3 4480 0
svchost 1480 0
svchost#2 1792 0
svchost#3 4480 0
svchost#1 9576 0
Squeez... 7436 0
svchost 1480 0
答案2
对于每个进程和连接的网络使用情况,我发现 TCPView gui 在 Windows Server Core 中有效。TCPView 可以从以下位置下载https://technet.microsoft.com/en-us/sysinternals/bb897437
下载后,使用您喜欢的方法(c$ admin share、Copy-Item cmdlet 等)将 tcpview.exe 复制到服务器。打开服务器的远程桌面并运行 tcpview.exe
不幸的是,tcpvcon 没有在命令行提供使用数据。
答案3
您应该能够远程连接性能监视器 -关联
您可以添加任何您想要的附加计数器并直接从您的工作站检索此信息。