過負荷時の分散ソフトウェアの 性能劣化を改善する スケジューリングの提案

Slides:



Advertisements
Similar presentations
第2回 プロセス管理 ジョブ、プロセスとは? プロセスの状態遷移 プロセス制御ブロック スケジューリング.
Advertisements

Webプロキシサーバにおける 動的資源管理方式の提案と実装
動画像品質調整機能を組み込んだ プロキシキャッシングシステムの 実装と評価
最新ファイルの提供を保証する代理FTPサーバの開発
セキュリティ機構のオフロードを考慮した仮想マシンへの動的メモリ割当
IaaS 仮想マシン(VM)をネットワーク経由で提供 負荷に応じてVM数や性能を変更できる ハードウェアの導入・管理・維持コストの削減
ラウンドトリップタイムを指標とした 無線LAN のためのアクセスポイント選択手法
過負荷時のWebアプリケーションの性能劣化を改善する Session-level Queue Scheduling
DNASシステム上のアプリケーション起動シーケンスのための基盤であるdsh部分の性能評価
報告 (2006/9/6) 高橋 慧.
仮想マシンの並列処理性能に対するCPU割り当ての影響の評価
HTTP proxy サーバにおける 動的コネクション管理方式
P,Q比が変更可能なScaLAPACKの コスト見積もり関数の開発
TCPデータ通信との公平性を考慮した 輻輳適応能力を有する MPEG動画像通信のための品質調整機構
多数の遊休PC上での 分散ゲーム木探索 導入 ゲーム木探索 ⇒遊休PCを利用して高速化 例)コンピュータ将棋における次手の計算
福盛 秀雄, 浜中 征志郎, 菅原 健一, 吉川 潤, 中山 周平 早稲田大学 村岡研究室
医療支援診断のためのコンピュータ分散システムの検討
同期的にアドバイスを活性化できる分散動的アスペクト指向システム
ユーザ毎にカスタマイズ可能な Web アプリケーション用のフレームワークの実装
演算/メモリ性能バランスを考慮した マルチコア向けオンチップメモリ貸与法
RMI ソフトウェア特論 第6回 /
既存Javaプログラムの バイトコード変換による 機能分散
サーバ負荷分散におけるOpenFlowを用いた省電力法
過負荷時のWebアプリケーションの 性能劣化を改善する Page-level Queue Scheduling
J2EEアプリケーションにおける アプリケーションレベルスケジューリング
Occam言語による マルチプリエンプティブシステムの 実装と検証
進捗 Javaバイトコード変換による 細粒度CPU資源管理
Xenによる ゲストOSの監視に基づく パケットフィルタリング
他のプロセスに あたえる影響が少ない 実行時ミラーリングシステム
オブジェクト指向プログラムにおける エイリアス解析手法の提案と実現
ユーザ毎にカスタマイズ可能な Webアプリケーションの 効率の良い実装方法
利用関係に基づく類似度を用いたJavaコンポーネント分類ツールの作成
仮想メモリを用いた VMマイグレーションの高速化
Ibaraki Univ. Dept of Electrical & Electronic Eng.
第7回 授業計画の修正 中間テストの解説・復習 前回の補足(クロックアルゴリズム・PFF) 仮想記憶方式のまとめ 特別課題について
通信機構合わせた最適化をおこなう並列化ンパイラ
動的データ依存関係解析を用いた Javaプログラムスライス手法
オープンソース開発支援のための ソースコード及びメールの履歴対応表示システム
東京工業大学 情報理工学研究科 数理・計算科学専攻 千葉研究室 栗田 亮
非対称リンクにおける ジャンボフレームの性能評価
他のプロセスに与える影響の少ない 実行時ミラーリングシステム
未使用メモリに着目した 複数ホストにまたがる 仮想マシンの高速化
アスペクト指向言語のための 独立性の高いパッケージシステム
J2EEアプリケーションにおける アプリケーションレベルスケジューリング
セキュリティ機構のオフロード時の 性能分離
VMMのソフトウェア若化を考慮した クラスタ性能の比較
ウェブアプリケーションサーバの Degradation Schemeの 制御に向けて
VMが利用可能なCPU数の変化に対応した 並列アプリケーション実行の最適化
コードクローン分類の詳細化に基づく 集約パターンの提案と評価
仮想環境を用いた 侵入検知システムの安全な構成法
Peer-to-Peerシステムにおける動的な木構造の生成による検索の高速化
コーディングパターンの あいまい検索の提案と実装
アクセス集中時の Webサーバの性能に対する OSの影響
インスタンスの型を考慮したJavaプログラムの実行経路の列挙手法の提案
「マイグレーションを支援する分散集合オブジェクト」
マイグレーションを支援する分散集合オブジェクト
Webアプリケーションと JSPの基本 ソフトウェア特論 第4回.
仮想マシンに対する 高いサービス可用性を実現する パケットフィルタリング
「マイグレーションを支援する分散集合オブジェクト」
分散処理を用いたコーディングパターン検出ツールの実装
ユビキタスコンピューティングの ための ハンドオーバー機能付きRMIの実装
クラスタリングを用いた ベイズ学習モデルを動的に更新する ソフトウェア障害検知手法
状況に応じて適切な 例外処理が行なえる アスペクト指向分散環境実験の 支援ツール
エイリアス関係を考慮した Javaプログラム用静的スライシングツール
IPmigrate:複数ホストに分割されたVMの マイグレーション手法
複数ホストにまたがるVMの 高速かつ柔軟な 部分マイグレーション
オブジェクト指向言語における セキュリティ解析アルゴリズムの提案と実現
ソケットの拡張によるJava用分散ミドルウエアの高信頼化
まさ 2003/06/12 卒論その後の進捗 まさ 2003/06/12.
Presentation transcript:

過負荷時の分散ソフトウェアの 性能劣化を改善する スケジューリングの提案 学籍番号 00-1966-6 日比野秀章 指導教官 千葉滋助教授

現在の分散ソフトウェア開発 分散コンポーネントが多く利用される サーバはRMIを並列処理して性能向上 例: EJB,DCOM,CORBA 余剰リソースを効率的に活用 例: I/O処理の終了待ち コンポーネント間の通信は Remote Method Invocation コンポーネント RMI

RMIの並列処理 最高性能を引き出す並列度は? 軽いメソッド 大きいほどよい 重いメソッド 小さい方がよい 軽いメソッド     大きいほどよい 処理時間の短いメソッド 重いメソッド     小さい方がよい 大量のメモリを消費、ディスクアクセスが必要なメソッド 多種類のメソッドが混在する場合は? 静的には決まらない 他のメソッドの処理状況に影響される

集中制御は難しい 関係する処理すべての進捗を見て、理想的な並列度を算出・適用 組み合わせ爆発 他のJVM上の処理の進捗は わからない 2 3 データベース 並列度 コントローラ 2 モニタ 3

Method-level Queue Schedulingの提案 メソッドごとに最大並列度を動的に独立に決定 そのメソッドの進捗状況だけをフィードバック 他のメソッドの影響は進捗状況から推定する 進捗状況を フィードバック 2 最大並列度 の制御 メソッドA 3 メソッドB

フィードバックによる最大並列度の決定 (Mc–Mp)(Tc–Tp)≧0 Mc 現在の最大並列度 Mp 前回の最大並列度 スループットを測定 最大並列度を⊿k 増加 最大並列度を⊿k 減少 十分なデータが            採取できたか? Yes No Mc 現在の最大並列度 Mp 前回の最大並列度 Tc Mcでのスループット Tp Mpでのスループット 最大並列度の小さな方が、スループットが高いと判断 最大並列度の大きな方が、スループットが高いと判断

ホスト単位での優先度設定 優先キューを作れば、 優先度別に処理順序を管理可能 優先度の高いものから順に処理 実行 優先権を持つホストからの呼び出しについて、レスポンス時間が短縮 優先権のないホストからの呼び出し 優先権のあるホストからの呼び出し 実行 優先キュー

実験 単一メソッドだけのフィードバック制御の効果を測定 重いメソッドが動いていても、軽いメソッドが圧迫されずに動く 実験環境 Java: version 1.4.2 サーバマシン CPU:Intel®Xeon(TM)CPU2.4GHz×2,Memory:2GB, OS:Linux2.4.20,NIC:100BaseTX クライアントマシン×15台 CPU:Pentium733MHz,Memory:512MB, OS:Linux2.4.19-Ovl11(VineLinux),NIC:100BaseTX

重いメソッドと軽いメソッドが 混在した場合の制御 評価方法 軽いメソッドを20クライアント 単純な数値計算 重いメソッドを50クライアント 120KB程度のXMLファイルをパースし、データ探索を行う 重いメソッドは、軽いメソッド開始から10秒後に開始 0.1秒間隔で処理数を測定

Method-level Queue Schedulingを 使用しない場合 軽いメソッド 重いメソッド [処理数 / 100ms] 時間 [秒] 重いメソッドの開始により、軽いメソッドの処理が滞っている

Method-level Queue Schedulingを 使用した場合 軽いメソッド 重いメソッド 時間 [秒] [処理数 / 100ms] 軽いメソッドの処理が滞らない

優先度指定による レスポンス時間の短縮 評価方法 対象メソッド 実験結果 対象メソッドを常時40クライアントが呼び出す  状況下で、優先度の有無による比較 対象メソッド 120KB程度のXMLファイルをパースし、データ  探索を行う 実験結果 平均して約1/27に短縮 秒

関連技術 設定ファイルに制限を明記 例: JBoss で使用されている コネクションの数を指定 分散コンポーネント毎にインスタンス数を指定 サーバで同時に処理できる数を制限 分散コンポーネント毎にインスタンス数を指定 コンポーネント単位で、同時に処理できる数を制限 ⇒メソッドによる負荷の違いが考慮されていない

まとめと今後の課題 まとめ 今後の課題 Method-level Queue Schedulingの提案と実装 実験では リモートメソッド単位で動的に並列処理数を制限 実験では 軽いメソッドと重いメソッドを混在させた場合でも、軽いメソッドがある程度動くことを確認した 今後の課題 軽いメソッドが優先されることによる、重いメソッドの性能低下を抑える