最近、会社のプロジェクトのサーバーにパフォーマンスの問題が発生しており、iis の過剰な負荷に関して、お客様が最大接続数について質問したとき、とてもかわいらしい気持ちになったので、関連情報を確認しました。 まず、IIS の最大同時接続数とキューの長さの 2 つの数値を見てみましょう。まず、これら 2 つの数字をどこに注目するかについて話しましょう。
最大同時接続数: IIS で Web サイトを選択し、Web サイト名を右クリックし、右クリック メニューで [Web サイトの管理] -> [詳細設定] を見つけてクリックします。以下に示すダイアログ ボックスを開きます。
キューの長さ: IIS の [アプリケーション プール] を選択し、アプリケーション プールの一覧で、表示したいものを右クリックし、右側の [詳細設定] を選択します。メニューをクリックします。次のダイアログ ボックスを開きます:
表面的には、これら 2 つの数値はサイトの同時処理能力に影響しますが、具体的には Web サイトの同時処理能力にどのような影響を与えるのでしょうか? IIS の同時処理能力を完全に理解するには、これら 2 つの数値に加えて、実際には非常に重要な数値があります。それは、IIS の同時ワーカー スレッドの最大数です。
1. IIS の同時作業スレッドの最大数
それでは、まず [IIS の同時ワーカー スレッドの最大数] が何であるかを理解しましょう。 IIS にはこの番号を設定するインターフェイスがありません。これまではこの番号が存在することさえ知りませんでした。この数値はオペレーティング システムに関連しています。私の win7 システムの IIS の値は 10 で、VS2012 に付属の IIS Express の値は 80 です。システムの Windows サーバー バージョンの具体的な値はテストされていませんが、制限があるはずだと思います。
この数字は何を意味しますか?上記の例に戻ると、10,000 個のリクエストが同時に IIS に入った場合、win7 システムの IIS には 10 個の作業スレッドしかないため、最初に 10,000 個のリクエストのうち 10 個だけが処理され、残りは 9990 個のリクエストが必要になります。列に並ぶこと。言い換えれば、IIS はリクエストを同時に処理するために最大 10 個のスレッドを配置できます (Win7 バージョンの IIS では、20 個のスレッドもあります)。
そのため、独自の win7 システムを使用して IIS のパフォーマンスをテストする場合、[最大同時接続数] をどのように設定しても、IIS の処理能力が非常に制限されていることがわかるかもしれません。
2. 最大同時接続数
上記の例でも、10,000 のリクエストが同時に到着し、Win7 システムの IIS の同時作業スレッドの最大数が 10 のみである場合、[同時接続の最大数] の場合、どのような影響がありますか?毛織物は100に設定されていますか?答えは、通常の応答を受け取るのは 100 リクエストのみで、残りの 9900 リクエストは 503 (サービス利用不可) エラーを直接返します。現時点では、キュー内で実際に待機しているリクエストは 90 件のみです。
[最大同時接続数] を 5000 に設定すると、テストパラメータはどうなりますか?答えはすでにわかっているかもしれません。つまり、5000 件のリクエストは最初に 503 を直接返し、残りの 5000 件のリクエストはゆっくりと通常どおりに返されます。
ここではっきりとわかりますが、[同時接続の最大数] がテスト例のキューの数に影響します。この場合、[キューの長さ] が何を意味するのかわからないようです。
3. キューの長さ
これを読んで、わかりますか?
結論
同時接続の最大数 = キューの長さ + IIS の同時ワーカー スレッドの最大数
最後に、IIS のデフォルト値が Web サイトの同時処理能力に及ぼす影響について話しましょう。 IISの[最大同時接続数]のデフォルトは4294967295(42億以上)、[キューの長さ]のデフォルト値は1000です。 IIS の Windows サーバー バージョンの場合、同時作業スレッドの最大数は数百である可能性があります (おそらく制限はないでしょう)。このデフォルト値によると、IIS が同時に処理できるリクエストの数はそれを超えるだけです。 1,000以上。 1,000 を超えるという数字は IIS の実際の同時処理能力であり、この能力はコードとは何の関係もありません。では、Webサイトの処理能力はどのような指標で判断されるのでしょうか?おそらく最も重要な指標は [1 秒あたりに処理されるリクエストの数] です (パフォーマンス アナライザーで表示できます)。この数値はスループット レートとも呼ばれます。各リクエストの処理速度が非常に速い場合、Web サイトのスループット レートは高くなり、高いスループット レートによってオンラインで同時に多数の人をサポートできます。フラッシュ セールを実行する場合は、フラッシュ セール関連の URL がどの程度のスループットをサポートしているかによって異なります。非常に多くの指標を理解しても、CPU の計算能力にはまだ触れていません。 CPU の計算能力は Web サイトの処理能力にどのような影響を与えますか?それでも非常に多くのリクエストがあり、CPU が非常に強力で各リクエストの処理時間を短縮できれば、必然的にスループット レートが向上します。依然として多くのリクエストが存在する場合、ネットワーク送信またはデータベースへの送信に多くの時間が費やされる場合、CPU 使用率を改善できれば、CPU はアイドル状態になります。ウェブサイトも改善され、サーバーを最大限に活用できるようになります。コードを変更したくないが、CPU 使用率を向上させたい場合は、IIS アプリケーション プール内のワーカー プロセスの最大数 (デフォルト値は 1) を 10 に設定できます。使用率はわずか数パーセントです。この値を調整してください。各ワーカー プロセスは独立したアプリケーションであり、グローバル静的変数は共有されないことに注意することが重要です。