HTTP proxy サーバにおける 動的コネクション管理方式

Slides:



Advertisements
Similar presentations
1 安全性の高いセッション管理方 式 の Servlet への導入 東京工業大学 理学部 千葉研究室所属 99-2270-6 松沼 正浩.
Advertisements

第2回 プロセス管理 ジョブ、プロセスとは? プロセスの状態遷移 プロセス制御ブロック スケジューリング.
Ibaraki Univ. Dept of Electrical & Electronic Eng.
大阪大学 長谷川 剛 インターネットフローの公平性 大阪大学 長谷川 剛 2001年10月19日 IN研究会.
Webプロキシサーバにおける 動的資源管理方式の提案と実装
動画像品質調整機能を組み込んだ プロキシキャッシングシステムの 実装と評価
動画像品質調整可能なプロキシキャッシュのためのキャッシングメカニズム
最新ファイルの提供を保証する代理FTPサーバの開発
セキュリティ機構のオフロードを考慮した仮想マシンへの動的メモリ割当
クラウドにおける ネストした仮想化を用いた 安全な帯域外リモート管理
スケールフリーネットワークにおける 経路制御のためのフラッディング手法の提案と評価
神奈川大学大学院工学研究科 電気電子情報工学専攻
TCP (Transmission Control Protocol)
ファイルシステムキャッシュを 考慮した仮想マシン監視機構
TCPデータ通信との公平性を考慮した 輻輳適応能力を有する MPEG動画像通信のための品質調整機構
福盛 秀雄, 浜中 征志郎, 菅原 健一, 吉川 潤, 中山 周平 早稲田大学 村岡研究室
センサノード 時刻同期と位置測定 浅川 和久 2008/11/16 センサノード 時刻同期と位置測定.
研究背景 クラウドコンピューティングサービスの普及 ユーザ数の増加に伴う問題 マルチテナント方式の採用 データセンタの需要が増加
大きな仮想マシンの 複数ホストへのマイグレーション
トランスポート層.
バックボーンルータにおける REDの動的閾値制御方式
ネストした仮想化を用いた VMの安全な帯域外リモート管理
コンテンツ配信 エンコード (符号化) CBR (Constant Bit Rate) VBR (Variable Bit Rate)
予備親探索機能を有した アプリケーションレベルマルチキャスト
プロキシ協調型動画像配信システムの検討 大阪大学 若宮 直紀.
IPv6アドレスによる RFIDシステム利用方式
サーバ負荷分散におけるOpenFlowを用いた省電力法
MPIによる行列積計算 情報論理工学研究室 渡邉伊織 情報論理工学研究室 渡邉伊織です。
過負荷時のWebアプリケーションの 性能劣化を改善する Page-level Queue Scheduling
Ibaraki Univ. Dept of Electrical & Electronic Eng.
動画像品質調整機能を組み込んだ プロキシキャッシングシステムの 実装と評価
IPv6 ネットワークにおける エニーキャスト通信実現のための プロトコル設計と実装
大阪大学 大学院情報科学研究科 博士前期課程2年 宮原研究室 土居 聡
過負荷時の分散ソフトウェアの 性能劣化を改善する スケジューリングの提案
TCP/UDP プロセス間の通信のためのプロトコル TCP:信頼性高、処理時間大 UDP:信頼性低、処理時間小 ftp SMTP HTTP
インターネットの基礎知識 その3 ~TCP・UDP層編~
2009年度卒業論文発表 CDNコンテンツサーバの動的負荷分散
Ibaraki Univ. Dept of Electrical & Electronic Eng.
リモートホストの異常を検知するための GPUとの直接通信機構
インターネットにおける真に プライベートなネットワークの構築
仮想メモリを用いた VMマイグレーションの高速化
各種ルータに対応する P2P通信環境に関する研究
Ibaraki Univ. Dept of Electrical & Electronic Eng.
Internet広域分散協調サーチロボット の研究開発
UDPマルチキャストチャット    空川幸司.
Webプロキシ HTTP1.0 ヒント CS-B3 ネットワークプログラミング  &情報科学科実験I.
演習第6回 情報通信技術論 インターネット工学
東京工業大学 情報理工学研究科 数理・計算科学専攻 千葉研究室 栗田 亮
非対称リンクにおける ジャンボフレームの性能評価
SN比を考慮した 無線スケジューリング方式
未使用メモリに着目した 複数ホストにまたがる 仮想マシンの高速化
Diffservにおける 絶対的な品質保証法
TCP制御フラグの解析による ネットワーク負荷の推測
軽量な仮想マシンを用いたIoT機器の安全な監視
仮想ネットワークを考慮した SoftIRQ制御によるCPU割当ての手法
VMMのソフトウェア若化を考慮した クラスタ性能の比較
片方向通信路を含む ネットワークアーキテクチャに於ける 動的な仮想リンク制御機構の設計と実装
ウェブアプリケーションサーバの Degradation Schemeの 制御に向けて
VMが利用可能なCPU数の変化に対応した 並列アプリケーション実行の最適化
P2P ネットワーク上で 実時間ストリーミングを実現するための 分散制御プロトコルの提案
GbEにおける TCP/IP の研究について
クラスタリングを用いた ベイズ学習モデルを動的に更新する ソフトウェア障害検知手法
7月13日の演習問題・解答例 について ネットワーク長が 18、22、26、28 の場合の
特定ユーザーのみが利用可能な仮想プライベート・ネットワーク
Webプロキシ HTTP1.1 ヒント CS-B3 ネットワークプログラミング  &情報科学科実験I.
ベイジアンネットワークと クラスタリング手法を用いたWeb障害検知システムの開発
TCP/IPの通信手順 (tcpdump)
ソケットの拡張によるJava用分散ミドルウエアの高信頼化
HTTPプロトコルの詳細 M1 峯 肇史.
Presentation transcript:

HTTP proxy サーバにおける 動的コネクション管理方式 大阪大学 大学院基礎工学研究科 岡本 卓也 tak-okmt@ics.es.osaka-u.ac.jp 2001年11月22日 TM 研究会

背景 proxy サーバにおけるデータ転送処理の 高速・高機能化の検討が必要 エンドホストにおけるデータ転送処理の高速化 SSBT 方式の提案 Webサーバにおけるサーバ資源の管理 データ転送処理速度の向上 応答時間の削減 proxy サーバを介した HTTP アクセス 全体の35%程度 proxy サーバの処理能力の不足によるスループットの低下 ネットワークの高速化のための研究として、TCPの輻輳制御や、WDMなどの転送技術にかんする 研究は広く行われているのに対し、エンドホストの高速化に関する研究はあまり行われていない。 しかし、ネットワークが高速になるにつれ、エンドホストがボトルネックとなる状況が発生しつつある。 これまで、我々の研究グループでは、Webサーバのおけるデータ転送の高速高機能化を実現する方法として、 SSBT方式を提案し、実際のWebサーバに実装することによって、その有効性を確認してきた。 しかし、現在のインターネットにおいては、Proxyサーバを介したHTTPリクエストも多く存在する。 また、ISPなどが設置したProxyサーバでは、多数のクライアントからのリクエストを 処理しなければならない。そのため、ネットワークに輻輳がなく、かつ、Webサーバの性能に余裕がある 状況においても、Proxyサーバの処理不足によって、スループットの低下が考えられる。 そこで、Proxyサーバのおけるデータ転送処理の高速高機能化の検討が必要であると考えられる。 proxy サーバにおけるデータ転送処理の 高速・高機能化の検討が必要 2001年11月22日 TM 研究会

エンドホストにおける問題点 特に多くの TCP コネクションを収容する proxy サーバでは これらのサーバ資源の効率的な割り当てが必要 ソケットバッファの割り当て 各 TCP コネクションの帯域,遅延等は異なる 固定サイズのソケットバッファの割り当て 各 TCP コネクションの帯域の考慮 コネクション管理 資源の割り当て mbuf ,ファイルディスクリプタ,メモリ空間 資源の不足 新規にTCP コネクションの確立の拒否 クライアントからのリクエスト要求を多くうけつけるProxyサーバでは, データ転送処理,クライアント間のコネクションの確立処理,さらにはWebサーバ間のコネクションの確立処理 を行わなければならない. そこで,まず,Proxyサーバでの様々な処理に使用されるサーバ資源についての説明を行う. まず,データ転送処理に使用される資源としては,ソケットバッファが挙げられる. これは,アプリケーションがTCPを使用してデータ転送を行う時に,転送データを一時的に格納する カーネル領域のメモリ空間である. 次に,コネクションの確立の際に各TCPコネクションに割り当てられる資源としては,以下のものが挙げられる. まず,mbuf, mbuf cluster.これらは,ソケットバッファにある転送データをネットワークカードに 書き込む際に使用されるメモリ空間である. 次に,ファイルディスクリプタがある.これは,それぞれのコネクションをカーネルおよびユーザアプリケーションが 識別できるようにするための識別子である. また,ネットワークの状態等をを保持しておくためのコントロールブロックを作成するメモリ空間に関しても サーバ資源となる. これら3つの資源のうち1つでも不足するとProxyサーバで新規コネクションを確立することができなくなる. これらの資源の効率的な割り当てを行うことによって,Proxyサーバにおけるデータ転送処理の高速化が行えると考えられる. 次のスライドからProxyサーバの高速高機能化を実現する提案方式についての説明を行う. 特に多くの TCP コネクションを収容する proxy サーバでは これらのサーバ資源の効率的な割り当てが必要 2001年11月22日 TM 研究会

提案方式 1. ソケットバッファ管理方式 (E2–ATBT 方式) E–ATBT 方式を改良したもの ・ 受信側ソケットバッファの考慮 ・ TCP コネクション間の依存関係の考慮 2. コネクション管理方式 ・ サーバ資源の管理 ・ persistent TCP コネクションの管理 提案方式は2つの手法から構成されます. まず,1つ目は先ほど説明したソケットバッファの管理手法です. 我々は,すでに提案しているWebサーバにおけるデータ転送処理の高速高機能化を実現するSSBT方式の中で Webサーバの動的なソケットバッファ管理方式を行うE-ATBT方式を提案しています. ProxyサーバはWebサーバと同様に,様々な環境からのコネクションを管理するのでソケットバッファを動的に変更して 割り当てることによって,データ転送処理を軽減できると考えられます. しかし,E-ATBT方式では,送信側のソケットバッファの動的な割り当てについての考察のみしか行っていません. 一方,Proxyサーバは,特性上,クライアントへのコネクションとWebさーばへのコネクションの間に依存関係が存在します. また,Webサーバからドキュメントをダウンロードするときには受信側となります. そのため,E-ATBT方式を適用するには,受信側のソケットバッファの管理,およびTCPコネクションの依存関係の考慮を しなければなりません. そこでこれらのことを考慮した手法である,E2-ATBT方式の提案を行います. 次にコネクション管理方式を提案します. Proxyサーバは,HTTP1.1をサポートしてきています. HTTP1.1を利用することによって,ネットワークおよびWebサーバの負荷を軽減させることができます. しかし,データ転送を行っていないpersistentコネクションに対しても,Proxyサーバはデータ転送を行っている コネクションと同等の資源を割り当てます. そのため, 2001年11月22日 TM 研究会

ソケットバッファ管理方式 E-ATBT (Equation-based Automatic TCP Buffer Tuning) 方式 決定した大きさのソケットバッファの割り当て proxy サーバの特性 TCP コネクション間の依存関係 受信側ソケットバッファの制御 まず,ソケットバッファ管理方式について説明します. これまでわれわれの研究グループでは,Webサーバの転送処理軽減手法として, E-ATBT方式を提案してきました. E-ATBT方式とは,各TCPコネクションの平均スループットを解析的手法によって導出し, そのスループットに基づく,動的なソケットバッファの割り当てを行ってきました. ProxyサーバもWebサーバと同様に,帯域や遅延時間の異なる多くのコネクションを収容するため, E-ATBT方式を適用することができると考えられます. しかし,Proxyサーバはその特性上,クライアントからのTCPコネクションとWebサーバのTCPコネクション の間には,依存関係が存在します. ここでの依存関係とは,たとえば,E-ATBT方式によって,クライアント間のTCPコネクションに 多くのソケットバッファの割り当てを行っても,Webサーバ関のTCPコネクションのスループットが 小さいために,クライアント間のTCPコネクションに割り当てたソケットバッファが無駄になってしまうといった ことです. また,ProxyサーバはWebサーバからドキュメントをダウンロードする時には,受信側ホストとして振る舞います. そのため,E-ATBT方式をProxyサーバに適用するためには,E-ATBT方式を改良する必要があります. 2001年11月22日 TM 研究会

E2-ATBT 方式 - コネクション間の依存関係 - 依存関係とは TCP コネクション間のスループットの違い client host proxy server web server 大きいサイズの ソケットバッファの割り当て そこで,E2-ATBT方式では,先ほどのべたTCPコネクション間の依存関係,および 受信側ソケットバッファの動的な割り当てを考慮します. まず依存関係の考慮について説明を行います. 依存関係を調べるためには,カーネルにおいてTCPコネクションのうち, クライアントとサーバの組み合わせを知る必要があります. しかし,カーネルでは各TCPコネクションを識別することは可能ですが, それらのコネクション間の依存関係を調べることはできません. そこでこの問題点に対して,以下の方法を用いることで,コネクションの識別を行った時と 同等の効果が得られると考えられます. まず,1つ目の方法としましては,各TCPコネクションに割り当てている送信側のソケットバッファの使用率 を監視し,その使用率が低い場合にはソケットバッファの有効な利用が行えていないと判断し, ソケットバッファの割り当てを強制的に減少させるという方法です. 2つ目の方法は,パケットヘッダへコネクション情報を付加する方法です. パケットヘッダに依存関係に関する情報を付加することによって,カーネルでソケットバッファの割り当て を変更させます. 無駄になる クライアント間のTCP コネクションに 割り当てるバッファサイズを減らす 2001年11月22日 TM 研究会

E2-ATBT 方式 - 受信側ソケットバッファ - proxy サーバの特徴 受信側ホストとして振る舞い 受信側ソケットバッファの割り当て 受信側ソケットバッファの不足によるスループットの低下 受信側ソケットバッファの動的な割り当てが必要 次に受信側ソケットバッファについての説明を行います. 送信側ホストが十分に高速で,かつネットワークに輻輳が生じていない環境において, 受信側ソケットバッファの不足によって,送信側ホストの送信レートが抑えられることによって, TCPコネクションのスループットが抑えられてしまうことがかんがえられます. 受信側ソケットバッファがスループット向上のボトルネックとならないためには 受信側ソケットバッファが送信側ウィンドウサイズ以上にすることによって可能となります. この問題点に対しては,コネクション間の依存関係と同様な方法によって可能であると考えられます. 提案方式のシミュレーションによる有効性の検証では, ソケットバッファに関する情報を正確に知ることができると仮定し,性能評価を行う. 実装に関する検討は,今後の課題とします. 受信側ソケットバッファサイズを 送信側ウィンドウサイズ以上にする 2001年11月22日 TM 研究会

コネクション管理方式 persistent TCP コネクション 転送終了後一定時間接続の保持 ウィンドウサイズなどのネットワーク情報の再利用 3-way handshake を行わない サーバ資源の割り当て 割り当てられたサーバ資源が無駄になる可能性がある サーバ資源の不足による新規 TCP コネクションの確立の拒否 proxy サーバは多くの TCP コネクションを収容する サーバ資源の無駄遣い persistent TCP コネクションの切断 次にコネクション管理についての説明を行います. Persistent コネクションは,ネットワーク情報を再利用してデータ転送を行うため ネットワークへの負荷を軽減することができます.また, スリーウェイハンドシェイクを避けることができるためWebサーバに対する負荷も軽減することができます. しかし,ProxyサーバはTCPコネクションがデータ転送にしようされている,いないにかかわらず ソケットバッファやファイルディスクリプタ等のサーバ資源を各TCPコネクションに割り当てるため, もしpersistent コネクションが利用されなければ割り当てられたサーバ資源が無駄になります. また,サーバ資源が不足し,新規TCPコネクションの確立が行えない状況になると, これらのサーバ資源が解放されるまで待機しなければならないため,Webドキュメント転送のスループットは 著しく低下してしまう. そこで,TCPコネクションを管理する必要があると考えられます. 2001年11月22日 TM 研究会

および persistent TCP コネクションの管理が必要 コネクション管理方式 proxy サーバの残存資源が十分ある時 可能な限り persistent TCP コネクションを収容する proxy サーバの残存資源が少ない時 使用されていない persistent TCP コネクションを切断し,新規 TCP コネクションの確立を行う この方式の実現には,残存資源の監視 および persistent TCP コネクションの管理が必要 そこでコネクション管理方式を,以下のよう行います. Proxyサーバの残存資源が十分にある時には, 可能な限りpersistent コネクションを収容します. これは,先ほど述べたように,persistent コネクションによりネットワークやWebサーバの負荷を軽減する ことができるためです. 一方,残存資源が少ない時には,使用されていないpersistent コネクションを切断し, サーバ資源を解放することによって新規TCPコネクションの確立を行えるようにし, TCPコネクションが確立できないことによる,スループットの低下を防ぎます. この方式を実現するためには,残存資源の管理およびpersistent コネクションの管理が必要となります. 2001年11月22日 TM 研究会

コネクション管理方式 - 残存資源の監視 - システムコールによる,各サーバ資源の使用可能量,および現在使用している量の取得 各サーバ資源の閾値の設定 その閾値を越えた場合,proxy サーバの資源が少なくなったと判断 まず,残存資源を管理するための方法についての説明をおこないます. プロキシサーバにおける資源の使用可能な量および,現在使用している量を取得することは, Sysctl 等のシステムコールを用いることで可能です. そこで,コネクション確立時に割り当てられる各サーバの資源に対して,閾値を設定し, それらの資源のうちどれかひとつでも閾値を超えた場合にはproxyサーバの資源 が少なくなったと判断することにします. このサーバ資源の監視の周期は,E2-ATBT方式で各TCPコネクションのスループットを計算する時に 同時に行うことにします. 2001年11月22日 TM 研究会

コネクション管理方式 - persistent TCP コネクションの管理 - hash function ( 192.168.10.200, 10010 ) ( 192. 168.17.10, 12049 ) ( 192.168.240.3, 10338 ) 246 36 120 16:20'40 16:20'42 16:20'48 time scheduling list time (IP address, port number) socket file descriptor NULL ・・・ ( 192.168.2.155, 10110 ) そして,persistent状態になったコネクションとして,time scheduling list の後ろの追加されます. このようにすることによって,persistent コネクションを切断しなければならない時には, Time scheduling list の先頭から切断することによってpersistent 状態の長いものから切断することが 可能となります. さらに,効果的な資源管理方式としては,persistent TCP コネクションに割り当てているソケットバッファの大きさを徐々に減らしていく方式が考えられる. シミュレーションでは,この方式も含めた性能評価を行う. ( 192.168.2.155, 10110 ) 159 16:20'53 2001年11月22日 TM 研究会

シミュレーションによる評価 シミュレーションモデル 伝搬遅延時間 : 10 – 200秒 ロス率 : 0.0001 – 0.01 今回の提案方式の有効性を検証するために,シミュレーションによる評価を行いました. シミュレーションモデルは図のとおりです. クライアントホストとプロキシサーバ間の伝播遅延時間を10-100秒まで,ロス率を0.0001-0.01までの値としました. また,Webサーバとプロキシサーバ間も同様に伝播遅延時間を10-200秒まで,ロス率を0.0001-0.01までの値としました. プロキシサーバのキャッシュヒット率を0.5,Webサーバの台数を50台としました. クライアント数を50,100,200,500と替え,HTTPリクエスト要求を 発生させた時の従来方式と提案方式によるシミュレーション結果を以下に示します. なお,このシミュレーションではプロキシサーバの性能の限界として, 200 TCPコネクションまでしか確立できないとし,シミュレーション時間は300secと設定しました. Proxy サーバ キャッシュヒット率 0.5 Web servers クライアントホスト 50,100,200,500 台 Web サーバ 50 台 伝搬遅延時間 : 10 – 100秒 ロス率 : 0.0001 – 0.01 2001年11月22日 TM 研究会

性能評価 性能評価を行った方式 scheme 1: 従来方式 scheme 2: ソケットバッファ管理方式 コネクション管理方式 scheme 4: scheme 3 にさらにソケットバッファを 徐々に減らす方式 2001年11月22日 TM 研究会

Total transfer size [Mbytes] proxy サーバでの性能評価 1200 scheme (1) scheme (2) scheme (3) 1000 scheme (4) 800 Total transfer size [Mbytes] 600 まず,Proxyサーバでの性能評価を行いました. この図は,プロキシサーバが扱ったデータの総量をあらわしています. ここでschemeとは, Scheme 1: 従来方式 Scheme 2: ソケットバッファ管理方式 Scheme 3: ソケットバッファ管理方式にさらにコネクション管理方式 Scheme 4: ソケットバッファ管理方式,コネクション管理方式とソケットバッファを徐々に減らす方式 をあらわします, この図より,従来方式はクライアント数が多くなると性能が低下していることがわかります. これは,TCPコネクションのうちドキュメント転送をおこなっていないpersistent TCPコネクションを収容 しているため,新規TCPコネクションの確立が行えないためです. ソケットバッファ管理方式では,コネクション数が小さいときは従来方式より性能が向上していることがわかります. これは,各TCPコネクションが要求しているソケットバッファサイズに基づいた割り当てを行うため, ソケットバッファの効率的な割り当てが行えたためであると考えられます. 一方,コネクション数が多くなると従来方式と同様に性能が悪くなります.これは, コネクション数が多いときに問題となるコネクションに関する管理を行っていないためであると考えられます. 次に,コネクション管理を行った方式について着目すると,コネクション数が増えている状態でも, たかい性能を示していることがわかります. これは,コネクション数が増加し,サーバ資源が少なくなってきた時にデータ転送を行っていないコネクションを 切断することにより新規TCPコネクションを確立しデータ転送を行うことができるため, Proxyサーバの扱ったデータ転送量が増加したと考えられます. また,persistent状態になったコネクションのソケットバッファを徐々に減少させていく方法では, コネクション数の少ないところで,ソケットバッファを徐々に減らさない方法よりも, 性能が向上していることがわかります. これは,データ転送をおこなっていないコネクションのソケットバッファを, データ転送をおこなっているコネクションに割り当てることによって,そのコネクションの スループットが向上し,全体としてプロキシサーバの扱ったデータ転送量が増加したと考えられます。 しかし,コネクション数が増加すると,persistent状態になったコネクションのソケットバッファを 減少させる前にコネクションが切断されてしまうため, ソケットバッファを徐々に減らす効果が見られないという結果となっています. 400 200 50 100 200 500 Number of client hosts 2001年11月22日 TM 研究会

クライアントの応答時間 - クライアント数 50 - 0.1 1 10 100 1000 10000 100000 1e+006 1e+007 1e+008 Response Time [sec] Document Size [Byte] scheme (1) scheme (2) scheme (3) scheme (4) 次にクライアントがドキュメントを要求してから,そのドキュメントを取得するまでにかかった 応答時間についてのシミュレーション結果を示します. まず,クライアント数が50の時の結果です. クライアント数が50の時は,サーバ資源が十分にあるため,従来方式においても コネクションの確立要求にすぐに答えることが可能であるため,それほど応答時間に違いはありませんが, しかし,ドキュメントサイズが大きくなるにつれ,提案方式の応答時間が短くなっていることがわかります. これは,E2-ATBT方式によって,各TCPコネクションの要求サイズの応じたソケットバッファの割り当てが行えるため, スループットが向上し,応答時間が短くなっていることがわかります. 2001年11月22日 TM 研究会

クライアントの応答時間 - クライアント数 200 - 0.1 1 10 100 1000 10000 100000 1e+006 1e+007 Response Time [sec] Document Size [Byte] scheme (1) scheme (2) scheme (3) scheme (4) クライアント数が200の時です. この図より,コネクション管理方式を行っていない方式と比較して, コネクション管理を行っている方式は応答時間が短くなっていることがわかります. これは,先ほど説明したように,プロキシサーバの資源が少なくなってきた時に, アイドル状態であるpersistent コネクションを切断することによって,新規TCPコネクションを すぐに確立できるため,応答時間が短くなっていると考えられます. 2001年11月22日 TM 研究会

まとめと今後の課題 proxy サーバにおけるサーバ資源管理方式の提案 シミュレーションによる有効性の確認 ソケットバッファ管理方式 コネクション管理方式 proxy サーバの性能改善 応答時間の改善 今後の課題 提案方式を実際の proxy サーバへの実装 その他のエンドホスト資源管理方式の検討 2001年11月22日 TM 研究会