Windows Server Coreがインストールされたサーバーがあり、resmonと同等のトラブルシューティング機能に到達しようとしています。これは、Windows Server GUIインストールでのみ使用できます。 Coreでリソースのボトルネックを特定できると確信していますが、resmonにアクセスできないため、ボトルネックの原因を特定する能力が制限されます。
プロセスとファイルごとにディスクリソースの使用状況を識別するPowershell、cmd、またはリモートGUIの方法はありますか?ネットワークについても同様で、各接続とプロセスが使用している帯域幅を特定します。
Linuxには、このデータをssh端末に表示できるiftopやiotopなどのコマンドラインプログラムがあります。 Server Coreでも同様のものが機能します。
以下は、私が興味を持っている情報の写真です。この情報をWindows Server Coreからリアルタイムまたはそれに近い場所で取得できると便利です。
リモートperfmonは1つの方法です。 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
パフォーマンスモニターをリモートで接続できるはずです- link
必要に応じて追加のカウンターを配置し、この情報をワークステーションから直接取得できます。
プロセスおよび接続ごとのネットワーク使用量については、TCPView GUIがWindows Server Coreで機能することがわかりました。 TCPViewは https://technet.Microsoft.com/en-us/sysinternals/bb897437 からダウンロードできます。
ダウンロードしたら、任意の方法(c $管理共有、Copy-Itemコマンドレットなど)を使用してtcpview.exeをサーバーにコピーします。サーバーでリモートデスクトップを開き、tcpview.exeを実行します。
残念ながら、tcpvconはコマンドラインで使用状況データを提供しません。