5

solaris サーバーから US サーバーに ssh 接続すると、ssh 接続が非常に高速になり、ファイルの削除がすぐに完了します。

しかし、リモート セッションに入ってから項目を削除した後、完了するまでに 10 秒以上かかるのはなぜですか。

Enter-PSSession -computerName test
remove-item 'C:\20010101.xls' 

次のコマンドの実行にも 5 秒以上かかります。

[Environment]::UserDomainName + "\" + [Environment]::UserName+" on"+[Environment]::MachineName

私がリモーティングを使用している理由の 1 つは、サーバーからローカルに大量のデータを転送する必要があるため、リモート デスクトップ接続が遅いことです。また、リモート処理については、データ量が非常に少ないテキストのみを転送することを望んでいるので、リモート デスクトップ接続よりもはるかに高速になると期待しています。しかし、非常に遅いのも事実です。

パフォーマンスを向上させる方法、またはほとんどの時間がどこに行くのかを調べる方法はありますか?

4

1 に答える 1

7

ダニエル、

表示されている時間遅延のほとんどは、リモートPowerShellセッションの起動によるものだと思います。

Enter-PSSessionを使用するのではなく、Invoke-Commandを使用してみてください。それでもリモートPSセッションは初期化されますが、コンソールのオーバーヘッドがすべて発生するわけではありません。

Invoke-Command -Computer test -ScriptBlock {[Environment] :: UserDomainName + "\" + [Environment] :: UserName + "on" + [Environment] :: MachineName}

すべての出力がXMLにシリアル化されてからオブジェクトに再構成されるため、PowerShellとWinRMがユーザーに代わって多くのことを実行していることに注意してください。PowerShellの最も優れている点の1つは、すべてがオブジェクトであり、ssh / bash/cmdなどを介して同様のアクションを実行するときに速度が低下することです。これはすべてトレードオフです。

時間がかかることがわかっているタスクを実行しているときは、それらをジョブとしてスケジュールし、他のことに移ろうとします。

-グレッグ

于 2011-03-17T18:49:06.443 に答える