Linuxで開かれたPowershellリモートセッションを繰り返すと、メモリが漏れます。

Linuxで開かれたPowershellリモートセッションを繰り返すと、メモリが漏れます。

次の問題が発生しました。 powershellを介してリモート接続を開く連続ループで実行されるアプリケーションがあります(何かを実行してから閉じます)。これはWindowsシステムではうまく機能しますが、Linuxシステムでは機能しません(テスト済みUbuntu 16.0.4)。

問題を再現するには、次のスクリプトを使用します。

$i = 0
while ($i -le 200)
{
    $password = "myPassword"
    $domain = "domain\computerName"
    $computerName = "xxx.xxx.xxx.xxx"
    
    $pwSession = convertto-securestring -AsPlainText -Force $password
    $cred = new-object -typename System.Management.Automation.PSCredential -argumentlist $domain,$pwSession
    $session = new-pssession -computername $computerName -credential $cred -Authentication Negotiate
    
    Remove-PSSession -Session $session
    Get-PSSession

    sleep 3
    $i
    $i++
}
  1. 以下を実行して powershell コンテキストを入力します。pwsh
  2. 上記のスクリプトの実行(コピー+貼り付け)
  3. pwshプロセスIDで実行top -p {process id}(次のコマンドを使用して1段階で実行できます)top -p $(ps -aux | grep pwsh | head -n 1 | cut -d' ' -f5)

このようなウィンドウが見えます。

ここに画像の説明を入力してください

メモリ消費が継続的に無制限(繰り返しごとに0.1%ずつ)増加することがわかります。

Google は powershell を使用して新しいセッションを開くと、メモリリークについて言及したいくつかの記事を返しましたが、上記の簡単なスクリプトがなぜそのような問題を引き起こすのかについての説明が見つかりませんでした.繰り返しますが、Linuxでのみ可能です。

この問題を解決する方法についてのアイデアはありますか?

ベストアンサー1

おすすめ記事