Windows Server 2008-R2で、自分のvps、vmware、クアッドコア、4GBラムを使用しているときに、CPU使用率がほとんど100%です。Windowsのタスクマネージャを開いてリソースモニタを見ると、100%の使用率は「workerprocess.exe」によるものだとわかります。 私のIISには3つのウェブサイトがあります。
vpsにeset-nod32をインストールしたのですが、ログに攻撃が表示されません。 IISとDDOS対策について検索してみたところ、IPアドレスを禁止する拡張機能を見つけましたが、どのIPアドレスがトラフィックを発生させているのかをどうやって見つけることができますか?
WebサイトはASP.NET
とC#
で書かれています。Webサイトで何が起こっているのか、どのコードがCPU使用率の原因になっているのかを判断するにはどうしたらよいでしょうか?
また、私のWebサイトの1つは、管理者のデスクトップにアクセスし、いくつかのファイルを読み書きする必要があります。 そのため、アプリケーションプールのID(プロセスモデル)をローカルシステムに変更しましたが、これがCPU使用率に関係するかどうかはわかりません。
App Poolが問題を引き起こしているものを診断するという点では、次のことができます。
1。 サーバーを選択します。 2。 IISに移動>ワーカープロセス。
サーバー設定。! これにより、このようなメニューが表示され、実行中のアプリプールが正常に実行されているかどうかを判断できます。
ワーカープロセス。! そこからアプリプールを再起動するだけで、10回のうち9回で問題が発生します。
物議を醸すビジネスを実行しない限り、これはおそらくDDOS攻撃ではありません。 別のサーバーに到達できなかった、ループや誤って割り当てられたリソースにスタックしたり、アプリプールがしばらくリサイクルされなかったりして、一部のコードがハングしている可能性があります。
アプリのプールを手動で識別、ログイン、リサイクルすることなく、この問題にプログラム的に対処できます。 アプリプールでCPUプロパティを構成するだけです。 特定の時間CPUしきい値に達したときはいつでも、プロセスを終了(および自動的に再起動)できます。
この場合、80%で再起動する場合は、アプリプールを右クリックして[詳細設定]に移動し、次の構成を適用できます。
アプリプールの詳細設定。! 注意:kraken101が指摘したように、異なるIIS GUIはこれを時間の経過とともに異なる方法で処理してきました。 構成値は常に1/1000%ですが、GUIが全体の割合を占める場合があります。
これを次のように[構成] [iis構成]セクションに追加できます。
<applicationPools>
<add name="DefaultAppPool">
<cpu limit="80000" action="KillW3wp" resetInterval="00:01:00" />
</add>
</applicationPools>
または、次のようにPowershellのWebAdministration Moduleでスクリプト化することもできます。 (* web-scripting-toolsが有効になっていることを確認してください)< / sup>。
Import-Module WebAdministration
$appPoolName = "DefaultAppPool"
$appPool = Get-Item "IIS:\AppPools\$appPoolName"
$appPool.cpu.limit = 80000
$appPool.cpu.action = "KillW3wp"
$appPool.cpu.resetInterval = "00:01:00"
$appPool | Set-Item
上記の手順は、壊れた場合にいくつかのことを修正するのに役立ちますが、根本的な問題は実際には解決しません。
パフォーマンス監視を行うためのリソースをいくつか示します。
これを解決するには、長い時間がかかります。絞り込みのポイントはいくつかあります。
私は最近同じ問題に直面していて、私のために働き、記憶消費レベルを大幅に削減する解決策を見つけました。
ソリューション:。
まず、メモリ使用量が多いアプリケーションを見つけます。
これは、タスクマネージャーの詳細セクションにあります。
次。
1。 IISマネージャーを開きます。 2。 アプリケーションプールをクリックします。 システムが使用している多くのアプリケーションプールがあります。 3。 タスクマネージャーから、メモリ消費量が多いアプリケーションが見つかりました。 そのためには複数のオプションがあり、Webアプリケーションの[アプリケーション]列で[1]があるオプションを選択する必要があります。。 4。 右側のアプリケーションプールをクリックすると、[アプリケーションの編集]プールにオプション事前設定が表示されます。 [詳細設定]に移動します。 5.次に、一般的なカテゴリの下で、 32ビットアプリケーションを有効にする*を True **に設定します。 6。 IISサーバーを再起動すると、タスクマネージャーのパフォーマンスセクションで消費量が減少することがわかります。
このソリューションが機能する場合は、コメントを追加して、私が知ることができるようにしてください。
必要ない場合は、ウェブサイトのそれぞれのアプリケーションプールから「32ビットアプリケーションを有効にする」をオフにします。
これは私の地元のマシンでうまくいきました。