過負荷時のWebアプリケーションの性能劣化を改善する Session-level Queue Scheduling

Slides:



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

OWL-Sを用いたWebアプリケーションの検査と生成
早稲田大学大学院 理工学研究科情報科学専攻 後藤研究室 修士 焦 江霞
第2回 プロセス管理 ジョブ、プロセスとは? プロセスの状態遷移 プロセス制御ブロック スケジューリング.
Webプロキシサーバにおける 動的資源管理方式の提案と実装
最新ファイルの提供を保証する代理FTPサーバの開発
IaaS 仮想マシン(VM)をネットワーク経由で提供 負荷に応じてVM数や性能を変更できる ハードウェアの導入・管理・維持コストの削減
仮想マシンの並列処理性能に対するCPU割り当ての影響の評価
HTTP proxy サーバにおける 動的コネクション管理方式
P,Q比が変更可能なScaLAPACKの コスト見積もり関数の開発
ファイルシステムキャッシュを 考慮した仮想マシン監視機構
OSが乗っ取られた場合にも機能するファイルアクセス制御システム
TCPデータ通信との公平性を考慮した 輻輳適応能力を有する MPEG動画像通信のための品質調整機構
バックボーンルータにおける REDの動的閾値制御方式
ネストした仮想化を用いた VMの安全な帯域外リモート管理
ネットワーク性能に合わせた 分散遺伝的アルゴリズムにおける 最適な移住についての検討
同期的にアドバイスを活性化できる分散動的アスペクト指向システム
予備親探索機能を有した アプリケーションレベルマルチキャスト
帯域外リモート管理の継続を 実現可能なVMマイグレーション手法
動画像ストリーミングサービスのための プロキシキャッシングシステムの 設計と実装および評価
ユーザ毎にカスタマイズ可能な Web アプリケーション用のフレームワークの実装
演算/メモリ性能バランスを考慮した マルチコア向けオンチップメモリ貸与法
ネットワークプログラミング論 平成28年12月12日 森田 彦.
メッシュネットワークに関する研究 ーチャネル割り当ての一手法ー
サーバ負荷分散におけるOpenFlowを用いた省電力法
MPIによる行列積計算 情報論理工学研究室 渡邉伊織 情報論理工学研究室 渡邉伊織です。
過負荷時のWebアプリケーションの 性能劣化を改善する Page-level Queue Scheduling
J2EEアプリケーションにおける アプリケーションレベルスケジューリング
Occam言語による マルチプリエンプティブシステムの 実装と検証
過負荷時の分散ソフトウェアの 性能劣化を改善する スケジューリングの提案
MPIを用いた最適な分散処理 情報論理工学研究室 角 仁志
Xenによる ゲストOSの監視に基づく パケットフィルタリング
セキュリティ(6) 05A2013 大川内 斉.
他のプロセスに あたえる影響が少ない 実行時ミラーリングシステム
2009年度卒業論文発表 CDNコンテンツサーバの動的負荷分散
Ibaraki Univ. Dept of Electrical & Electronic Eng.
IaaS型クラウドにおける インスタンス構成の動的最適化手法
リモートホストの異常を検知するための GPUとの直接通信機構
ユーザ毎にカスタマイズ可能な Webアプリケーションの 効率の良い実装方法
インターネットにおける真に プライベートなネットワークの構築
仮想計算機を用いたサーバ統合に おける高速なリブートリカバリ
マルチホーミングを利用した Proxy Mobile IPv6の ハンドオーバー
Internet広域分散協調サーチロボット の研究開発
階層的位置表現への 広域化ビュー適用における追尾性向上
オープンソース開発支援のための ソースコード及びメールの履歴対応表示システム
東京工業大学 情報理工学研究科 数理・計算科学専攻 千葉研究室 栗田 亮
非対称リンクにおける ジャンボフレームの性能評価
他のプロセスに与える影響の少ない 実行時ミラーリングシステム
クラウドにおけるVM内コンテナを用いた 自動障害復旧システムの開発
2003年6月17日 早稲田大学大学院理工学研究科 情報科学専攻 修士2年 水野 宏樹
J2EEアプリケーションにおける アプリケーションレベルスケジューリング
VMMのソフトウェア若化を考慮した クラスタ性能の比較
ウェブアプリケーションサーバの Degradation Schemeの 制御に向けて
VMが利用可能なCPU数の変化に対応した 並列アプリケーション実行の最適化
北海道情報大学 情報メディア学部 情報メディア学科 新井山ゼミ 金子拓磨
P2P ネットワーク上で 実時間ストリーミングを実現するための 分散制御プロトコルの提案
仮想環境を用いた 侵入検知システムの安全な構成法
アクセス集中時の Webサーバの性能に対する OSの影響
オペレーティングシステム (プロセススケジューリング)
仮想マシンに対する 高いサービス可用性を実現する パケットフィルタリング
VMリダイレクト攻撃を防ぐための 安全なリモート管理機構
GbEにおける TCP/IP の研究について
アドホックルーティングにおける 省電力フラッディング手法の提案
ユビキタスコンピューティングの ための ハンドオーバー機能付きRMIの実装
クラスタリングを用いた ベイズ学習モデルを動的に更新する ソフトウェア障害検知手法
IPmigrate:複数ホストに分割されたVMの マイグレーション手法
複数ホストにまたがるVMの 高速かつ柔軟な 部分マイグレーション
特定ユーザーのみが利用可能な仮想プライベート・ネットワーク
ベイジアンネットワークと クラスタリング手法を用いたWeb障害検知システムの開発
Presentation transcript:

過負荷時のWebアプリケーションの性能劣化を改善する Session-level Queue Scheduling 東京工業大学大学院 情報理工学研究科 数理・計算科学専攻 千葉研究室 松沼正浩 指導教官:千葉滋 修士論文発表

セッション処理性能の重要性 消化セッション数がサイトの利益に直結 セッション処理とは? 複数のWebページを通して行う処理 例:ログインからログアウトまでの一連の処理 最後のページ(ログアウト)まで処理して完了 例:商用サイトの物品購入アプリケーション セッション ログ イン 商品 検索 商品 決定 購入 送信 ログ アウト ページ 修士論文発表

過負荷時のセッション処理性能 リクエスト殺到時には増加比率以上に低下 処理性能低下の原因は 成功 10倍のリクエストで100分の1以下の性能になることも 一定の数を超えるとセッション処理性能がゼロになる場合も 処理性能低下の原因は リソース競合による各ページの処理性能の低下 途中失敗の増加によるセッション完了数の低下 成功 殺到 購入完了 ログイン 空き状況 観戦予約 修士論文発表

原因1:ページ処理性能の低下 リクエスト殺到時にページ処理性能が低下 各ページのリソース競合を解消する必要 計算リソースが競合するため 重いページの並列処理によりリソースが不足 大規模アプリケーションが増加傾向 競合にともなう余計な処理増加 例:メモリ競合によりGC,スワップイン・アウト増加 各ページのリソース競合を解消する必要 ページ処理性能が低下すると、集合体であるセッションの処理性能も低下 修士論文発表

原因2:セッションの途中失敗 過負荷時にセッションが途中失敗する可能性大 セッションの途中失敗を抑制する必要 ページの処理失敗が原因 サーバタイムアウトやブラウザタイムアウト Safari 1.2.3で1分、Mozilla系ブラウザでは2分 ユーザが待ちきれずにリクエストを中止 11秒以上待たされるとイライラを感じる[Jakob’02] ページの数だけ失敗する危険性も高まる 重要な処理ほどセッションが長くなる[Cherkasova’98] セッションの途中失敗を抑制する必要 途中で失敗するとそれまでの処理が全て無駄になる 修士論文発表

Session-level Queue Scheduling の提案 ページ単位制御とセッション単位制御の両方を連動 ユーザの挙動を考慮したスケジューリング シンクタイム 次のページに移動するまでの時間 タイムアウト 一定時間以内にレスポンスが得られない場合にリクエストを中断 途中退場 正規手続きを踏まずに途中でセッション処理を中断 セッション スケジューラ ページ スケジューラ ページ スケジューラ ページ スケジューラ 修士論文発表

ページスケジューラ ページ単位で並列度を設定してリソース競合を解消 並列度は各ページの進捗状況により決定 リソース競合を起こさない最大の並列度を動的に決定 並列度をこえるリクエストはページキューで待機させる 並列度は各ページの進捗状況により決定 Progress-based Regulation [Douceur’99] を応用 進捗が悪化しているとリソース競合を起こしていると判定 個別のリソースを監視する必要はない 進捗状況を フィードバック リクエスト ページスケジューラ  3 ページキュー 進捗測定 並列制御 クライアント 処理実行

セッションスケジューラ 同時に処理するセッション数を制御 同時セッション数の動的な決定 制御はセッション参加時の1回のみ キュー 同時に処理するセッション数を制御 同時セッション数の動的な決定 ページスケジューラからの情報を利用 ページキューの長さを一定に保つ キューが長い:途中失敗の可能性大 キューが短い:リソース使用の効率低下 制御はセッション参加時の1回のみ 許可を得られるまで、リクエストはセッションキューで待機させる キューの長さを フィードバック セッションスケジューラ ページ スケジューラ 修士論文発表

セッションスケジューラによる 同時セッション数の制御方法 リクエストの投入間隔(遅延)を制御 長くすれば、同時セッション数が減少 短くすれば、同時セッション数が増加 全てのページキューの長さを監視し遅延を変化 待機リクエスト数の総和が多い=ページキューが長い 同時セッション数が多すぎると判断し、遅延を長くする 待機リクエスト数の総和が少ない=ページキューが短い 同時セッション数が少なすぎると判断し、遅延を短くする 修士論文発表

プロトタイプ実装 Tomcat上にて実装 単純なアルゴリズムを用いて効果を検証 ページ単位の並列度の決定 セッション開始の時間的遅れの決定 各ページのスループットを進捗とした セッション開始の時間的遅れの決定 セッション開始時に次回の遅延を変更 ページキューの平均長を算出し、しきい値と比較 しきい値以上なら間隔を長くし、以下なら間隔を短くする 修士論文発表

性能比較実験 同時クライアント数を変動させセッション処理性能を測定 対象アプリケーション クライアントの挙動 商品購入アプリケーションに見立てたServlet群 クライアントの挙動 シンクタイム:一定時間が経過した後で次のページに移動 タイムアウト:リクエストを送ってから一定時間応答がなければリクエストを破棄 リトライ:途中失敗した場合は最初から 5.商品検索 400ms 1.login 30ms 2.閲覧 30ms 3.閲覧 30ms 4.閲覧 30ms 6.購入 30ms 7.logout 30ms 修士論文発表

比較対象 制御なし ページスケジューラのみ使用 セッション参加人数を固定(1or30) セッションを保護しない 途中失敗しない(1) 競合するがシンクタイムを有効利用する(30) サーバ CPU:Intel Xeon 2.40GHz×2 メモリ:2GB OS:Linux2.4.2ギガビットイーサネット WebAppサーバ:Tomcat3.3.1 クライアント CPU:Intel Xeon 3.06GHz メモリ:2GB OS:Linux2.6.8 ギガビットイーサネット 修士論文発表

タイムアウトがない場合の性能 ページスケジューラが リソース競合解消 処理が逐次的 スループット[sessions/sec] シンクタイム3秒 タイムアウト無制限 処理が逐次的 タイムアウト1分 シンクタイム3秒 クライアント数

タイムアウトが1分の場合の 性能 過負荷時でも性能維持 途中から急激に 性能が低下 スループット[sessions/sec] シンクタイム3秒 タイムアウト1分 クライアント数

レスポンスタイム (125クライアント) ページ単位・本手法とも レスポンスタイムに関しても向上 タイムアウト1分 シンクタイム3秒 クライアント数 経過時間 [sec]

レスポンスタイム (400クライアント) 本手法のレスポンスタイムは クライアント殺到時でも高性能 タイムアウト1分 シンクタイム3秒 クライアント数 経過時間 [sec]

セッションの途中失敗数 急激に失敗数が増加 ほぼ同比率で増加 失敗の内訳 失敗セッション数 シンクタイム3秒 タイムアウト1分 クライアント数

失敗したページの内訳 クライアント数125の時の失敗数の内訳 クライアント数400の時の失敗数の内訳 ページ番号 1ページ 2~4ページ 5ページ 6~7ページ 制御無し 0 3 150 ページ単位 本手法 150 クライアント数400の時の失敗数の内訳 本手法を用いない場合は、重い処理を行っているページで起きている ページ番号 1ページ 2~4ページ 5ページ 6~7ページ 制御無し ー ページ単位 0 735 本手法 226 本手法を用いた場合には、セッション失敗は 全てセッションの先頭ページでのみ発生した 735 226

スケジューラの挙動の時間変化 セッションスケジューラの挙動 ページスケジューラの挙動 キューが長くなると セッション間隔が伸びる ページキューの長さ セッション間隔 [msec] 並列度 キューが長くなると セッション間隔が伸びる 制御すべきページの並列度 が頻繁に変動 経過時間 [sec] 経過時間 [sec]

タイムアウトを短縮 (1分→30秒) 高い処理性能を依然維持することができた より少ないクライアント数でも タイムアウトが発生する スループット[sessions/sec] シンクタイム3秒 タイムアウト30秒 より少ないクライアント数でも タイムアウトが発生する クライアント数

シンクタイムを短縮 (3秒→1秒) シンクタイムの長さは性能 にあまり影響を与えない スループット[sessions/sec] シンクタイム1秒 タイムアウト1分 シンクタイムの長さは性能 にあまり影響を与えない クライアント数

関連研究 Application-aware admission Control [Carlstorm’02] ページ単位制御、セッション単位制御の組み合わせ それぞれが個別に動作 SEDA Architecture[Welsh’03] リクエスト処理をステージに分割して負荷を制御 より細かいリソース管理を実現 ページスケジューラと直交する ハートビート 通信にタグを埋め込み ブラウザのタイムアウトの抑制 修士論文発表

まとめ Session-level Queue Scheduling[DSW’05]を提案 プロトタイプ実装を用いた実験により有効性を示した ページスケジューラ[SPA’04]とセッションスケジューラを連動させることで過負荷時のセッション処理性能を向上・維持 プロトタイプ実装を用いた実験により有効性を示した ユーザの複雑な挙動を考慮したモデルを使用した性能比較 シンクタイム・タイムアウト・リトライを考慮 過負荷時においても一定のセッション処理性能を維持 単純なアルゴリズムでも効果あり 修士論文発表

今後の課題 より複雑なユーザの挙動を考慮したモデルで対応できるかの確認 修士論文発表