Windows system >> Windowsの知識 >  >> Windows 7システムチュートリアル >> Windows 7システムチュートリアルについて >> Windows 7 7層ソフトロードの経験共有を行うために

Windows 7 7層ソフトロードの経験共有を行うために

  
この記事では、Windowsの下で7層ソフトロードのいくつかの分析を行うためにあなたを紹介します、あなたはこの作品の負荷に興味がある、あなたが来ることができる。実際、いわゆる4層はIP +ポートに基づく負荷分散であり、7層はURLなどのアプリケーション層情報に基づく負荷分散であり、7層には浅い印象を与えているので、誰もが7層のソフトロードを行う経験があります。それを共有し、もちろん、それはWindowsプラットフォームの下で最善です。
パフォーマンス分析
1.外部ネットワークの接続管理とプロトコル解決は、http.sys(HttpApi.dll、HttpListener)組み込みメカニズム、http.sys HTTP接続管理、およびカーネルレベルでのプロトコル分析を使用して、パフォーマンスを向上させる必要があります。保証します。
2、HttpWebRequestの組み込みメカニズムを使用した内部ネットワークRealServerの接続管理と統合パッケージが、以下の問題

a)接続管理:リクエストを送信するためのRealServerへのデフォルトプロキシは新しい接続を確立し、レスポンスを受け取ります接続が削除されます。つまり、ProxyとRealServerの間に多数の接続が確立されますが、ポートの制限(65535)のために、発信接続が多すぎることはありません。この問題を解決するには、RealAliveがRealServerを解決できるようにします。
b)パッケージ:HttpListenerがパッケージを受け取ると、自動的にオブジェクトに解析されますが、HttpWebRequestの形式に再接続してRealServerに送信する必要があります。これには、Uri、HttpHeader、Cookie、Bodyなどのコピーが含まれます。データ量はかなり多く、メモリ内でパフォーマンスが低下することは確実です。この問題は避けられないはずです。
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の負荷が高まります。オブジェクトはまだカスタムプールインターフェイスを提供していません。 HttpListenerが新しいイベントベースの非同期モード(XXXAsync(eventargs)モード、Socket.ReceiveAsyncメソッドを参照)を提供するようにすれば、この問題は解決します。
6また、HttpLisenterは.netのラッパークラスであるため、ユーザーモードで実行され、HTTP.SYSはカーネルモードで実行されています要求を受け付けると、応答を返すとユーザーモードとカーネルモードが2回切り替わります。カーネル状態で7層の転送を直接実行できる場合はパフォーマンスを低下させます。LVS(KTCPVS)はLinuxの下でカーネルベースのコンテンツベースの7層の転送を実現でき、Windowsの下でTDIまたはNDIS開発を行う必要があります。情報の中には複雑すぎるものもあるので、最初に考えてはいません。
1.信頼性解析


1. 1. 7層のソフトロードには4層のロードデバイス、7層のソフトロード、および共有ハッシュ戦略が必要です。 4層デバイスはSessionに従ってランダムロードを実行するため、すべての7層ソフトロードマシンはすべての要求を正しく処理でき、7層ソフトロードが停止した後も残りの7層ソフトロードは機能し続けることができます。レイヤロードにはキープアライブ機能があり、どの7レイヤソフトロードがダウンしているかを検出でき、要求を転送しません。
2. 7層のソフトロードをダブルクリックしてホットスタンバイにし、7層のソフトロードを直接外部ネットワークに接続するプライマリサーバがダウンした場合、バックアップサーバはARPスプーフィングによってプライマリサーバを検出して取得します。元のIPはバックアップサーバに要求を引き付けるために使用され(サポートされている場合はハードウェアがマスタとバックアップマシンでMACアドレスを共有することをサポートしている)、アクティブ/スタンバイ切り替えが発生すると短時間の要求が失敗する可能性があります。
総合的に考えて、2番目のスキームは、1番目のスキームを優先して、いくつかのコテージと保険がありません。
Copyright © Windowsの知識 All Rights Reserved