7層のソフトロードを共有するWindows 7

  

この記事では、Windowsの下で7層のソフトロードを分析する方法を紹介します。この部分の負荷に興味があるのであれば、ぜひご覧ください。実際、いわゆる4層はIP +ポートに基づく負荷分散であり、7層はURLなどのアプリケーション層情報に基づく負荷分散であり、7層には浅い印象を与えているので、誰もが7層のソフトロードを行う経験があります。それを共有し、もちろん、それはWindowsプラットフォームの下で最善です。

パフォーマンス分析

1.外部ネットワークの接続管理とプロトコル解決は、http.sys(HttpApi.dll、HttpListener)の組み込みメカニズム、カーネルレベルでのHTTP接続管理用のhttp.sysを使用します。プロトコルの解決、パフォーマンスは保証されるべきです。

2、HttpWebRequestの組み込みメカニズムを使用したイントラネットRealServerの接続管理と統合。ただし、以下の問題があります。

a)接続管理:RealServerにリクエストを送信するデフォルトプロキシは新しい接続を確立します。応答を受信した後、接続は削除されます。つまり、ProxyとRealServerの間に多数の接続が確立されることになりますが、ポートの制限(65535)のため、発信接続が多すぎることはありません。この問題を解決するには、RealAliveがRealServerを解決できるようにします。

b)パッケージ:HttpListenerがパッケージを受け取ると自動的にオブジェクトに解決されますが、パッケージをHttpWebRequest形式に再接続してRealServerに送信することもできます。これにはUri、HttpHeader、Cookies、本体など、データ量がかなり多いため、一定の損失性能のためにメモリをメモリにコピーします。この問題は避けられないはずです。

3、通常のWebアプリケーション(リソースアクセスクラス)の場合、Requestは小さく、Responseは非常に大きく、RealServerはResponseに戻るときにProxyも通過しますが、メモリをコピーするため、これもパフォーマンスに影響します。その場合、レイヤ7はLVSのDirectRouteメカニズムを使用できず(ネットワークパケットのMACアドレスを変更する必要があります)、IPトンネルとTCPの状態遷移はオペレーティングシステムのTCP /IPプロトコルスタックを変更する必要があります。コストを考えると、問題は回避されません。

4、Httpプロトコルでは、リクエストでリクエストとレスポンスをペアで表示することを指定しています。デフォルトでは、リクエストを送信した後、リクエストに対応するレスポンスが受信されるまで待つ必要があります。パイプライン関数は、最初に応答を待たずに要求をまとめて送信することができますが、POSTがパイプラインを使用してはならないなどの制限もあります。リクエストがバッチで送信された後、接続が切断された場合、複数のリクエストが失敗するなどとなります。 HTTPプロトコルは、SIPプロトコルのようにCallIDとCseqによるリクエストとレスポンスが一致しないため、リクエストとレスポンスを非同期で送受信できるため、Httpプロトコルスタックを実装すると、レスポンスは同期して待機し、次のリクエストを接続で送信できます。これは必然的にパフォーマンスに影響を与えます。

5、HttpListenerの非同期受信要求と送信応答は通常のAPMモード(BeginXXX、EndXXXフォーマット)です。この非同期モードでは、頻繁に呼び出されると多数のIAsyncRequestオブジェクトが生成および破棄され、GCへの負担が増大します。そしてIAsyncRequestオブジェクトはまだカスタムプールインターフェースを提供していません。 HttpListenerが新しいイベントベースの非同期モード(XXXAsync(eventargs)モード、Socket.ReceiveAsyncメソッドを参照)を提供するようにすれば、この問題は解決します。

6.また、HttpLisenterは.NETラッパークラスであるため、HTTP.SYSがカーネルモードで実行されている間はユーザーモードで実行され、リクエストを受け付けると、ユーザー状態とカーネル状態の間でリターン応答が行われます。カーネル状態で7層の転送を直接実行できる場合は、切り替えによってパフォーマンスが低下します。LVS(KTCPVS)を使用すると、Linuxでカーネルベースのコンテンツベースの7層転送を実行でき、WindowsでTDIまたはNDIS開発を行う必要があります。いくつかの情報をチェックするのは非常に複雑なので、私は最初にそれについて考えません。

信頼性分析

耐災害性を提供​​し、信頼性を向上させるために、次のスキームを検討してください。

1. 7層のソフトロードの前に4層のロードデバイス、7層のソフトロードが必要です。複数層をロードし、ハッシュポリシーを共有すると、4層デバイスはSessionに従ってランダムロードを実行するため、7層ソフトロードマシンはすべて要求を正しく処理でき、7層ソフトロードが停止した後は残りの7層が処理されます。 4層ロードはキープアライブ機能を備えているため、どの7層ソフトロードがダウンしているかを検出でき、要求を転送しません。

2.レイヤ7ソフトロードダブルクリックホットスタンバイ、7レイヤソフトロードは外部ネットワークに直接アクセスします通常、プライマリサーバがリクエストを処理し、プライマリサーバがダウンしている場合は、バックアップサーバがそれを発見してARPを偽装します。バックアップサーバに要求を引き付けるためにプライマリサーバの元のIPアドレスを取得します(ハードウェアがサポートしている場合は、プライマリデバイスとバックアップデバイスがMACアドレスを共有していると見なすことができます)。

2番目の選択肢を考えると、1番目の選択肢を優先してコテージがあり、保険はありません。前のページ1234次のページ合計4ページ

Copyright © Windowsの知識 All Rights Reserved