web-dev-qa-db-ja.com

Lsass.exeのCPU使用率が高く、Webサーバーで要求のキューイングが発生する

ASP.NET 4.5.1で、Windows 2012 R2を搭載したWebサーバーを1つだけ実行しているIIS 8.5です。ADの役割はインストールされておらず、インストールされたこともありません。

先週の日曜日、プロセスlsass.exeが突然20〜40%のCPUを使用し始めました。サーバーや周辺ネットワークでは何も変更していません。 (この時点ではWindowsの更新は行われていません)

それ以来、サーバーが再起動されるまで、Webサイトは徐々に劣化し、応答時間が長くなり、その後すべてが正常に戻りますが、そこからゆっくりと下り坂になります。サイトを稼働状態に保つために、サーバーは4〜12時間ごとに再起動する必要があります。サーバーのCPU使用率が100%に達することはなく、予備のRAMも使用可能です。

サイトとサーバーを監視するために使用されるNew Relicから、パフォーマンスの低下を引き起こしているのはリクエストキューイングであり、再起動後の100msから数時間後の10s以上に増加しているようです。

他のサーバーがあり、同じWebサイトコードで同じ環境で実行されており、このサーバーよりも負荷が高く、この動作を示していません。 (それらはWS 2012(R2ではない)にあります)

私はネットワークトラフィックを監視しましたが、そこに異常はありません。 Perfmonで際立っており、相関しているように見えることの1つは"Security per process statistics\Credential Handles"です。これは、lsassプロセスで増加し続け、再起動後、ほんの一握りから始まります。数時間の運用で100.000以上に達します。他のプロセスはこれを実行しておらず、他のサーバーのlsass.exeには数百の「資格ハンドル」しかない

先月のlsass.exeプロセスのグラフを参照してください。 enter image description here

New relicによるウェブサイトの応答時間のグラフ。各ピークは再起動を要求し、サーバーは小さなピークで再起動されましたが、このグラフではあまり見えません。 enter image description here

何が悪いのか、どのように修正するかについてのアドバイスはありますか?

編集:lsass.exeのProcess ExplorerのTCP/IPパネルのスナップショット enter image description here

Lsass.exeから生成された一般的なスレッドのスナップショット。これらは、Process Explorerで毎秒ポップアップします。 enter image description here

3
Oskar Melen

Windows 2012 R2および2008 R2 SP1でTLS 1.2(1.0および1.2)を有効にした後、プロセスlsass.exeがCPUに過負荷をかけ始めました。 IISCrypto40を使用して[ベストプラクティス]をクリックし、[キー交換を有効]でPKCSのみを有効にしました。その後、CPUの負荷は通常(5〜10%)に戻りました。 PS貧しい英語で申し訳ありません IISCrypto設定

マルウェアをチェックします。 Meterpreterをlsassに移行することで、より多くの権限が与えられるため、これを引き起こしました。

また、プロセスエクスプローラーを見て、どのスレッドが高CPUを引き起こしているのかを確認できるかどうかを確認します。

1
Steve Butler