クラスター環境に4つのターミナルサーバー(つまり、Server1、Server2、Server3、Server4)があります。何らかの理由で、Server1は常に使用可能なRAMの90〜100%を使用しています。他のサーバーは平均してRAMの約40%を占めています。ユーザーの合計は、サーバーあたり約27セッションです。
1つのサーバーがすべてのRAMを使い果たしているが、他のサーバーは使い切っていない理由を知るにはどうすればよいですか。一部のユーザーはより多くを使用している可能性があるため、RAMツールとリソース。ただし、Server1は営業時間中に一貫してピークに達しています。
[Windowsタスクマネージャー]> [パフォーマンス]> [リソースモニター]に移動するときにserver1にRDPを実行すると、[メモリ]タブに移動すると、Server1で実行されているchrome.exeのプロセスが多数表示されます。ただし、他のサーバーでは、すべてのユーザーがchrome.exeを使用してシステムを使用して日常業務を行っているにもかかわらず、同じ動作は見られません。
このサーバーのどこかに間違った構成があるように感じます。私の知る限り、4つのターミナルサーバーすべてが同じ設定になっているはずです。「私はそれらを構成しなかったので、100%ではありません」
これがServer1のスクリーンショットです:リソースモニター サーバー1:タスクマネージャー
そしてこれがServer2のスクリーンショットです:リソースモニター Server2:タスクマネージャー
SERVER1の最初の画面で3GBのRAMが使用されており、さらに多くのページをスクロールできます。何かが多すぎますが、どうしますか?次を使用してみてくださいそれらの数字のいくつかを要約するCLIツール。何か奇妙なことをしている悪いユーザーがいますか?多くのユーザーによって実行されている悪いアプリがありますか?
これにより、各ユーザー名のSessionIDが提供されます。これにはまだ「query.exe」を使用していますが、WMIから取得する方法がわかりません。query user /server:SERVER1
これにより、各SessionIDによって開始されたプロセス数の小計が得られます(名前の列はSessionIDです)。他よりもはるかに多くのprocを使用するセッションはありますか?gwmi win32_process -comp SERVER1 | select name,workingsetsize,sessionid | group-object -prop sessionid | sort -desc count
誰が開始したかに関係なく、プロセス名による小計。 「InteractionClient.exe」のインスタンスがたくさんあるようです。そんなにたくさんあるべきですか?gwmi win32_process -comp SERVER1 | select name,workingsetsize,sessionid | group-object -prop name | sort -desc count
選択したSessionIDのWorkingSetSizeの小計。 99をCMD2の疑わしいSessionIDに置き換えます。 InteractionClientをCMD3の疑わしいprocNameに置き換えます。セッションIDでグループ化した後、measure-object -sumを使用したかったのですが、その方法がわかりませんでした。(gwmi win32_process -comp SERVER1 | where {$_.sessionid -eq 99} | measure-object workingsetsize -sum).sum/1mb (gwmi win32_process -comp SERVER1 | where {$_.name -eq "InteractionClient.exe"} | measure-object workingsetsize -sum).sum/1mb
SessionID、ExeName、WorkingSetSizeの大きなテーブル。これをExcelに入れて、= SUM(A1:A99)ステートメントを手動で挿入することにより、RAM小計を取得できます。gwmi win32_process -comp SERVER1 | select sessionid,name,workingsetsize | sort sessionid,name,workingsetsize