[復刻版]サイトの展開、IISの設定の最適化ガイド

サイトの展開、IISの設定の最適化ガイド

HTTPS:// www.cnblogs.com/heyuquan/p/deploy-iis-set-performance-guide.html 

かなりの価値が、結局、学習に注意を払っていない多くの場所の前に。

 

ディレクトリ

まず、アプリケーションプールのデフォルトを設定します

第二に、一般設定

第三に、リカバリ戦略を最適化

第四に、パフォーマンス

ファイブは、IISが初期化される(プリロード)、遅くする(リサイクル後の)最初の訪問を解決します

第六に、同時実行

7、セキュリティ

 

通常、めったにサイトを構成するためには、操作に必要な電流に最も適しているかIISが提供する様々なパラメータを考慮しないために、IIS上で適切に実行するためにサイトを公開?この記事では、基本的な設定を最適化する必要があります回復メカニズム、パフォーマンス、同時実行、セキュリティ、およびIISの設定方法について説明します。

 

最初に「IISアプリケーションプール」パラメータ最適化のスクリーンショット:

図のパラメータは、(のような:Windowsパフォーマンスモニタ)いくつかのツールを使用することができますいくつかの数値限定、手術部位を観察指標が設定は、特定の後に導入されます

 

 

 

 

のは、これらのパラメータは、このセットの理由を説明させている(注:記事の引数は、トップダウンからアプリケーションプールに基づいて設定されていないが、ファンクションポイントの最適化された配置に従って)

 

まず、   アプリケーションプールのデフォルトを設定します

次のようにデフォルトのテンプレートパラメータは、リアセット、デフォルトのパラメータのテンプレートを使用する新しいアプリケーションプールを設定しました。

 

 

第二に、一般設定

IISのバージョンを表示

IISマネージャでは - >ヘルプ - >インターネットインフォメーションサービスについて、以下に示すように、バージョンがIIS10です。

 

一般>アプリケーションの起動32

デフォルト値:偽

最適化設定:オンデマンドの設定。それが確認された場合のサイトではtrueに設定する必要があります部品32の一部に依存しています。

勧告:単独のサイト32ビットアプリケーションのアプリケーションプールを作成します。

参考:

64ビットシステムのウェブサイト上で32ビットプログラムを実行するIIS

一般>管理パイプラインモード

新しいアプリケーションプールIIS7統合モードとクラシックモード

クラシックモード:保持するため及びIIS6同じアプローチでは、以前に開発されたコードを容易IIS7に移植することができます。

統合モード:一緒にIISと組み合わせてコアASP.NET要求パイプライン導管、より密接にオペレーティングシステムと共にこのモデルは、より良好な性能を提供することができるが、モジュラー構成と管理を実現し、そしてマネージコードモジュールの使用を増加させることができますIISでの柔軟性を拡張しました。

最適化設定:統合(統合モード)へ

参考:

    IIS7クラシックモードと統合モードの理解

 

第三に、リカバリ戦略を最適化

 

復旧>一定の時間間隔(分)

一定の期間を超える期間、アプリケーションプールが回復しました。値が0で、アプリケーションは、定期的回復でプールしていません

デフォルト:1740分、29時間

最適化設定:0に。彼らはピーク時に発生した回復を防ぐことはできませんので。そして、設定された「リサイクル>特定の時間」

リサイクル>特定の時間

ローカル時刻の特定のセットを回復するアプリケーションプール(24時間)

最適化設定:低ピークで回収修正します。例えばは:4時、午後03時30分などに設定します

また、あなたは6泊分のリサイクルIISサイト時限週を達成するには、Windowsスケジュールタスクを使用することができます

プロセスモデル>アイドルタイムアウト(分)

作業工程を設定する最大時間は、それが自動的にシャットダウンされる時間をかけてアイドル時間間隔ままにしています。

最適化の設定は:0に、メモリ回復情報が頻繁に空にされないようにします。そして、設定された「リサイクル>特定の時間」

プロセスモデル>アイドルタイムアウト操作

デフォルトでは(他のオプションは、「一時停止」された)「終了」です。

いったんタイムアウトがサービスを終了するために、メモリバッファワークプロセスを再利用するための手段を終了。

ホバリング待機をサスペンド、それがバッファメモリを回復しないであろう。

 

さらに:

CPU占有オーバーランセキュリティプログラムの設定

CPUの上限は、各プロセスのCPU使用率を制御するために使用されていないが、プロセスの安全プログラムの作業が長すぎるため、作業プロセスのCPUを避けるために、オーバーランCPUの処理を発生します。

参考:

    iis7.0 CPU制限

操作のCPUの限界をIIS:

  1. リミット:10000(1000 *パーセントで計算し、10%が10,000を表します)
  2. 操作制限:1、NOACTIONアクションなし2、KillW3wp除去プロセスをし、制限時間内に新しいプロセスを再オープン
  3. 間隔(分)を制限:制限時間の設定を、そして長い時間内の検出を再起動します

メモリの制限コレクション機構

設定「リサイクル>仮想メモリ制限」と「リサイクル>専用メモリの制限」は、一般的に、この目的のために特別に設定されていない、実際の操作に応じて、デフォルトでは無効になっています。

時間制限オフ|オン

実際の動作は、デフォルトの90秒に設定されています。上記のように、私は120秒間に設けられています

(秒)時間制限オフプロセスモデルは、>:処理要求とターンオフ時間の期間を完了するために、作業プロセスを指定します。ワーカープロセスは、閉店時間の制限を超えた場合、それが終了します。

プロセスモデル>は時間制限(単数または複数)を起動:ワークプロセスに割り当て、そして時間の初期化を開始します。ワーカープロセスの初期化時間制限が起動時間を超えた場合は、終了します。

回復回復>を無効に重複

デフォルト値はfalseです。重ねを使用してアプリケーションプールをリサイクル。アプリケーションプールは、作業プロセスを閉じるには、この方法では、成功した古い作業プロセスのシャットダウン後に作成された新しいワーカープロセスまでの作業工程を作成します。 

古いワーカープロセスをオフにした後、trueに設定し、新しい業務プロセスを作成します。Webアプリケーションが実行されている複数のインスタンスをサポートしていない場合は、仕方の重複使用を禁止リサイクルアプリケーションプールを構成する必要があります。

リサイクル>リサイクルイベントエントリを生成します

IISイベントビューア

方法1:「スタート→ファイル名を指定して実行」、eventvwrと入力をクリックして、「OK」をクリックし、[イベントビューアを開くことができます。

方法2:「スタート」をクリック - 「設定」 - 「コントロールパネル」 - 「管理ツール」 - 「イベントビューア」、[イベントビューア]ウィンドウを開きます。

方法3:]ダイアログボックスで、手動で「ファイル名を指定して実行」「の%SystemRoot%/ system32に/ eventvwr.msc / sの」オープンイベントビューア]ウィンドウを入力します。

 

 

第四に、パフォーマンス

 

閉じるIISログ

一度記録上、IISは不可避忠実にすべてのWebアクセスのレコードを記録します。これらのログファイルの内容は、それはまたようにする方法(メソッド)、ユーザーエージェント(ユーザエージェント)とを含んでいるなど、アクセス時間、リンクからアクセスしているクライアントIP、クッキー、など、非常に不均一です。これらのレコードだけでなく、ディスクスペースの多くを取るも大幅にWebサーバのパフォーマンスに影響を与えています。評価は、Webパフォーマンスの8%に5%増加させることができるアクセスの記録を停止、行われました。

コンテンツの有効期限を有効にする(クライアント側のキャッシュ)

静的ファイルのアクセス性能を向上させることができ、コンテンツの有効期限を有効にします。

  1. まず、ディレクトリが合理的に、ウェブサイト、画像、CSS分割しなければならない、JavaScriptが別のディレクトリにあります
  2. 次に、IISでのキャッシュディレクトリ> HTTPレスポンスヘッダ>設定共通ヘッダ>設定「Webコンテンツの有効期限」ポリシーを選択

図webDemoサイトとして、ユーザーのブラウザは、現在の日付とキャッシュされたページを表示するかどうかを判断するための期限を比較したり、画像なぜなら、CSS、JS通常あまり変更なので、基本的にローカルキャッシュから、サーバから更新されたページを要求するように、読んで、このように表示速度を高速化。

参考:

    IIS7は、個々のクライアントキャッシュ静的ファイルを無効にします

サーバー認証キャッシュ

IIS自動メカニズムは、意志は彼の訪問のCSS、JSおよびその他の静的ファイル中に、ブラウザは、最終更新日とのEtagマークに戻ります

参考:

    ブラウザのキャッシュのLast-Modified

    キャッシュサーバー認証-最終更新日とのEtag

Gzip圧縮を有効にします

gzipでIIS圧縮アルゴリズム

HTTP gzipの圧縮アルゴリズムは、HTTP圧縮は、Webサーバーとブラウザ間で圧縮されたテキストの内容を送信する方法です。このようなHTML、JavaScriptやCSSファイルとしてgzip圧縮などの一般的な圧縮アルゴリズムを使用してHTTP圧縮。最大の利点は、圧縮、それによってクライアントブラウザのアクセス速度を増加させる、ネットワークを介して送信されるデータの量を減少させることです。もちろん、だけでなく、負担を少しサーバーを増やします。gzipはHTTP圧縮アルゴリズムの比較的一般的な形式です。

 

ファイブは、IISが初期化される(プリロード)、遅くする(リサイクル後の)最初の訪問を解決します

参考:https://www.cnblogs.com/teamblog/p/6195078.html

 

それは自動的に初期化される時、設定した後?

(例えば、初期化実行Global.Application_Start初期化関数)

1)ます - 起動アプリケーションプール、アプリケーションプールのリサイクル、cmd-> IISRESET(PIDのW3WPになります)

2)しません - サイトの再起動(IISサイト右>)サイト>再起動を管理し、サイトを開始しました

3)ではない - アプリケーションプールのリサイクルのweb.config変化による

IIS10バージョンは、上記の動作でテストされています。また、使用して誰かIIS8.5上で同じ動作である、の記事を参照してください

 

ステップ1、IISアプリケーションの初期化機能をインストールします。

 

ステップ2は、起動モードIISアプリケーションプール上に設けられています

一般>起動モード

デフォルト値:オンデマンド(操作の需要モード)、しばらくAlwaysRuning(常に実行モード)の値

最適化設定:変更AlwaysRunning(必ず実行しています)

ステップ3は、サイトのプリロードを設定します

右のサイト> IISでサイト管理]> [詳細設定]は、事前に負荷が有効になって[]をtrueに設定します。

 

4ステップ、サイトのweb.configファイルを設定し、再起動が要求されたページを事前にロードした後にサイトを追加します

 

 

 

例えば:住所:のhttp://webdemo.com/home/about

 

この操作は、保存した後、IISは、web.configファイルには、以下を追加、変更します

01
02
03
04
05
06
< system.webServer >
     ……
     < applicationInitialization  doAppInitAfterRestart="true">
         < add  initializationPage="home/about" hostName="" />
     </ applicationInitialization >
</ system.webServer >

唯一の初期化(例えば、初期化関数としてのみGlobal.Application_Start実行された)場合は、特定の初期化APIにアクセスするために追加のリソースを必要としない、不要<= initializationPageを追加「**」/>サブノードはありません

 

第六に、同時実行

一般>キューの長さ

HTTP.sysはアプリケーションプールキューの要求の最大数。デフォルト値は1000年、最大65535。

設定は、システムリソースを大量に消費します大きすぎる、と設定が頻繁に「503サービスを使用できません」応答クライアントアクセスにつながる小さすぎます。

最適化設定:あなたは、最初の1.5倍までの同時ユーザー数の期待値に5000(セットを読み取ることができ、公式リファレンス

ウィンドウを使用してパフォーマンスの監視(パフォーマンス監視:cmd-> perfmon.mscとは)、インジケータ、観察アプリケーションプール現在のリクエストキューの数「/ CurrentQueueSize HTTPサービス要求キュー」を追加します。

Webガーデン(ウェブガーデン)、プロセスモデル>ワーカープロセスの最大数を有効にします

あなたが仕事のプロセスの最大数が使用するWebアプリケーションプールを構成することができ、庭では、デフォルトは1で、最大値は4000000を設定することができ、複数のワーカープロセスを使用するように構成されたアプリケーションの要求を処理するために、アプリケーションプールのパフォーマンスを向上させますが、設定することができますあなたが複数のワーカープロセスを使用する前に、次の点を考慮してください。 

1、各ワーカー・プロセスは、システムリソースとCPU使用率を消費し、あまりにも多くの仕事のプロセスは、システムリソースとCPU使用率の急激な減少につながります。 

2は、各ワーカー・プロセスは、Webアプリケーションは、状態データを保存するためにワーカープロセスに依存している場合、それは複数のワーカープロセスの使用をサポートしていない場合があり、自身の状態データを持っています。 

この設定は、キューの状態で多数の要求を避けるために、処理プロセスの数、クラスタの同等の増加

参考:

同時最適化をIIS

本論文では、導入されています使用して、Windowsのパフォーマンス監視:cmd-> perfmon.mscとします。必要に応じてIISアプリケーション監視操作は、パラメータの設定をIIS
Webサービス/現在の接続は、アプリケーションプールへの現在の接続数を示すために、アプリケーションプールを監視します。
すべてのASP.Net 4.0の要求数を監視する実行ASP.NETアプリv4.0.30319 /要求が処理されています。
上記と同様の現在のASP.NET v4.0.30319 /要求Asp.Net 4.0処理されている要求の数を監視するために使用されます。
HTTPサービス・リクエスト・キューは、/キュー現在プール内の要求の数を監視するために使用されるアプリケーションをCurrentQueueSize。

同時要求の数を調整します

サポートする同時要求のデフォルト数:5000

これは、同時の数を超え、例外が報告されます

HTTPエラー503.2 - サービスは利用できません

appConcurrentRequestLimit設定@のServerRuntimeを超えています。

参考:

    どのように同時リクエストは、設定をIIS?

同時接続の最大数サイト

右のサイト> [詳細設定]> [制限事項>同時接続の最大数

 

スレッドのサイト数:minWorkerThreads、maxWorkerThreads、maxIoThreads

(センスXieyuanあなた  runliuv @  提供する新しい姿勢)

maxWorkerThreadsデフォルト20、maxIoThreadsデフォルト20、minWorkerThreads既定1、minIoThreadsデフォルト1(例:8コア、デフォルトは、それぞれ160であり、160、8、8)

1、設定ファイル:C:\ WINDOWS \ Microsoft.NET \ Framework64 \ v4.0.30319 Configを\ \のmachine.config

2、修改参数<のprocessModel自動構成= "偽" maxWorkerThreads = "100" maxIoThreads = "100" minWorkerThreads = "50" minIoThreads = "50" />

其中:minWorkerThreadsの= maxWorkerThreads / 2。minIoThreads = maxIoThreads / 2 

どのように特定のパラメータ値が、また、圧力試験を調整するために、各サイトの

参考:

        ガーデンのブログ「ブラック30秒」イベント

                調査「ブラック30秒」という質問 - なぜ要求がキューイングされています

                ASP.NETスレッドの観点から、「黒30秒」問題の新たな分析を[解決]

IIS7.5最適化 - 高い同時実行に対応するために、スレッドの数を増やします

processModel要素(ASP.NET設定スキーマ)

ASP.NETパフォーマンス性改良     (以下に示すように、Microsoftの文書は、推奨値を示します)

 

 

7、セキュリティ

別の作業プロセスのアプリケーションプール(ワーカープロセス分離モード)を指定します

単一のサーバー上の多くのWebサイトがあります。私は、互いに独立して、さまざまなサイト間で行うことができますが、理由はいくつかのWebサイトの他のサイトに影響を与えないために失敗しない方法は? - アプリケーションプールで別の作業プロセスのために指定されたが、良い解決策です。

プロセスモデル>タグは、仮想口座ApplicationPoolIdentityを使用します

ApplicationPoolIdentityは - デフォルトでは、「アプリケーションプールID」アカウントを選択します。あなたがアプリケーションプールアカウントを起動するときに動的に「アプリケーションプールID」を作成し、そのため、あなたのアプリケーションのため、このアカウントは、最も安全です。(このように、それぞれが独自のアプリケーションプールアカウントを持っている、トロイの木馬を回避することは次のプール、プールが別のフォルダが権限を操作している必要がありますサイトにアップロード)

参考:

   神秘的なApplicationPoolIdentityでIIS7.5

ラピッドフェール保護を有効にします

 

質問で書かれたWebアプリケーションのコードならば、それは問題がワーカープロセスを持続する可能性があります。失敗したワーカープロセスの数が生じた場合、デフォルトで設定されたアプリケーションプールは、ラピッドフェール保護を有効にするために設定された値(デフォルトは5倍である)よりも時間の設定された期間内(デフォルトは5分です)、そしてアプリケーションプールを無効にします。

 

================================================== =========

  以上、アクセスに感謝し、あなたがその記事を収穫、私は彼が推薦する手助けしたいと思います。優れたデータや情報を提供するために、ようこそ。

 

 

おすすめ

転載: www.cnblogs.com/jinanxiaolaohu/p/10944548.html