WebLogic Server 10.3 スレッド管理 - 概要

5,229 views

Published on

こんな課題があれば参考になるはず
- アプリケーション環境構築時のチューニング負荷を大幅に削減したい(自動チューニング)
- 重要なアプリケーションやユーザからの要求を滞留させずに確実に処理したい(優先度制御)
- 想定外の処理要求発生時の大幅な処理滞留や過大な負荷を回避した安定稼動を保障したい

Published in: Technology, Business
0 Comments
4 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
5,229
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
81
Comments
0
Likes
4
Embeds 0
No embeds

No notes for slide

WebLogic Server 10.3 スレッド管理 - 概要

  1. 1. <Insert Picture Here>WebLogic Server 10.3 スレッド管理 - 概要日本オラクル株式会社
  2. 2. 以下の事項は、弊社の一般的な製品の方向性に関する概要を説明するものです。 また、情報提供を唯一の目的とするものであり、いかなる契約にも組み込むことは できません。以下の事項は、マテリアルやコード、機能を提供することをコミットメン ト(確約)するものではないため、購買決定を行う際の判断材料になさらないで下さ い。オラクル製品に関して記載されている機能の開発、リリースおよび時期につい ては、弊社の裁量により決定されます。 OracleとJavaは、Oracle Corporation 及びその子会社、関連会社の米国及びその他の国における登録商標です。 文中の社名、商品名等は各社の商標または登録商標である場合があります。 Copyright© 2011, Oracle. All rights reserved.2
  3. 3. こんな課題があれば参考になるはずアプリケーション環境構築時のチューニング負荷を大幅に削 減したい(自動チューニング)重要なアプリケーションやユーザからの要求を滞留させずに 確実に処理したい(優先度制御)想定外の処理要求発生時の大幅な処理滞留や過大な負荷 を回避した安定稼動を保障したい Copyright ©2011, Oracle. All rights reserved.
  4. 4. WebLogic Server のアーキテクチャ(スレッド管理)アプリケーションサーバにおけるスレッド管理の必要性WebLogic Server 10.3 のスレッド管理のアーキテクチャワーク マネージャのコンフィグレーション Copyright ©2011, Oracle. All rights reserved. 4
  5. 5. アプリケーションサーバにおけるスレッド管理の必要性多数のクライアントからのリクエストを処理する必要がある多重、同時でリクエストを処理する必要があるマルチスレッドで複数のリクエストを処理するのが最適クライアント アプリケーションサーバ スレッド キュー ・ ・ ・ Copyright ©2011, Oracle. All rights reserved. 5
  6. 6. アプリケーションサーバにおけるスレッド管理の必要性 WebLogic Server 8.1 以前のアーキテクチャ アプリケーションクライアント スレッドプール WebApp A 実行キュー EJB A WebApp B ソケットリーダー Copyright ©2011, Oracle. All rights reserved. 6
  7. 7. WebLogic Server 10.3 のスレッド管理のアーキテクチャ- 新たなアーキテクチャの必要性WebLogic Server 8.1 以前のアーキテクチャの課題 スレッド数の調整が困難  必要なスレッド数の予測が困難  多過ぎると起動が遅延、リソースの無駄  尐な過ぎると十分な同時実行性が得られない  スレッドは高価なリソース。効率的に使用したい。 アプリケーション毎のプライオリティ付けが困難  スレッドプール毎にスレッドのプライオリティを設定可能だが、OS レベルの設 定であり大袈裟 • 新たなアーキテクチャが必要 Copyright ©2011, Oracle. All rights reserved. 7
  8. 8. WebLogic Server 10.3 のスレッド管理のアーキテクチャ- 新たなアーキテクチャ単一の自動チューニング・スレッドプールの導入 単一のスレッドプールを複数のアプリケーションで共有 スループットの測定に基づいて、スレッド数を自動調整 初期のスレッド数は尐ないため、起動時間に影響を及ぼさないワークマネージャの導入 アプリケーション別、ユーザ別等の細かいプライオリティ付けが可能• このアーキテクチャは WebLogic Server 9.0 から導入 Copyright ©2011, Oracle. All rights reserved. 8
  9. 9. WebLogic Server 10.3 のスレッド管理のアーキテクチャ- 概要図 ワークマネージャサブシステムクライアント Default ワークマネージャ WebApp A ワークマネージャ A WebApp B ワークマネージャ B EJB A ワークマネージャ C コンソール ソケットリーダー スレッドプール Copyright ©2011, Oracle. All rights reserved. 9
  10. 10. WebLogic Server 10.3 のスレッド管理のアーキテクチャ- スレッドの増減 2秒間隔でスループットの監視 スレッドが必要 スレッドが不要 ワークマネージャ A ワークマネージャ B スレッドプール Active Thread Standby Thread Copyright ©2011, Oracle. All rights reserved. 10
  11. 11. WebLogic Server 10.3 のスレッド管理のアーキテクチャ - リクエストのプライオリティ付け リクエストのプライオリティにより順序を変更ワークマネージャ A A A Bワークマネージャ B B スレッドプール Copyright ©2011, Oracle. All rights reserved. 11
  12. 12. ワーク マネージャのコンフィグレーション- 種類制約 最小スレッド数制約 最大スレッド数制約 容量制約要求クラス フェアシェア要求クラス 応答時間要求クラス コンテキスト要求クラス Copyright ©2011, Oracle. All rights reserved. 12
  13. 13. コンフィグレーション- 最小スレッド数制約最小スレッド数制約 ワークマネージャ A MinThreadConstraint = 3 スレッドプール 最小の並列実行数を制御 プールにスレッドが存在するかに関わらず、スレッドを新規作成してで も実行 起動時に作成されるスレッド数とは関係しない 主な目的はデッドロックの防止 Copyright ©2011, Oracle. All rights reserved. 13
  14. 14. コンフィグレーション- 最大スレッド数制約最大スレッド数制約 ワークマネージャ A 実行中 MaxThreadConstraint = 3 スレッドプール 最大の並列実行数を制御 複数のワークマネージャより共有することが可能  合計のスレッド総数が制約の対象となる スレッドが増えすぎることの防止 Copyright ©2011, Oracle. All rights reserved. 14
  15. 15. コンフィグレーション- 容量制約容量制約 ワークマネージャ A 実行中 Capacity = 6 スレッドプール キューに溜まるリクエストと実行中のリクエストの総数の最大数 オーバーロードの防止 Copyright ©2011, Oracle. All rights reserved. 15
  16. 16. コンフィグレーション- 要求クラス要求クラスとは? リクエストの重みを決定するもの 空きスレッドが無い状態での、スレッドの割り当て時に作用 Copyright ©2011, Oracle. All rights reserved. 16
  17. 17. コンフィグレーション- 要求クラス1. フェアシェア要求クラス  相対的なプライオリティを設定する  例) 1002. 応答時間要求クラス  目標とする応答時間を設定する  例) 2000 msec  待ちキューに滞留する時間をコントロール  あくまで目標値の設定3. コンテキスト要求クラス  ユーザ毎に要求クラスを決定する  要求クラスのネストを作成 Copyright ©2011, Oracle. All rights reserved. 17
  18. 18. コンフィグレーション- 要求クラス 例例1 ワークマネージャ A (フェアシェア 100) ワークマネージャ B (フェアシェア 200) 高負荷でリクエストを投入  1:2 の割合でスレッドが割り当てられる例2 ワークマネージャ C (応答時間 2000ms) ワークマネージャ D (応答時間 1000ms) 高負荷でリクエストを投入し、アプリケーション実行時間が一定と仮定 する  1:2 の割合でスレッドが割り当てられる Copyright ©2011, Oracle. All rights reserved. 18
  19. 19. コンフィグレーション- 要求クラス 例例3 フェアシェア要求クラスをネストしたコンテキスト要求クラス ユーザ : system は 100 を設定したフェアシェア要求クラスを使用 他のユーザ : everyone は 50 を設定したフェアシェア要求クラスを使 用 ユーザ : system のリクエストは他のユーザより高い優先度でスレッド が割り当てられる Copyright ©2011, Oracle. All rights reserved. 19
  20. 20. コンフィグレーション1) ワークマネージャを定義グローバル ワークマネージャ config.xmlアプリケーションスコープ ワークマネージャ weblogic-application.xml (EAR) weblogic-ejb-jar.xml (EJB) 定義例: weblogic.xml (WAR) <work-manager> <name>WM01</name> <fair-share-request-class> <name>share20</name> <fair-share>20</fair- share> </fair-share-request-class> </work-manager> Copyright ©2011, Oracle. All rights reserved. 20
  21. 21. コンフィグレーション2) 定義したワークマネージャをアプリで参照Web アプリケーション Servlet 単位  web.xml <init-param> <param-name>wl-dispatch-policy</param-name> <param-value>WM01</param-value> </init-param> Web アプリケーション単位  weblogic.xml <wl-dispatch-policy>WM01</wl-dispatch-policy>EJB weblogic-ejb-jar.xml <dispatch-policy>WM01</dispatch-policy> Copyright ©2011, Oracle. All rights reserved. 21
  22. 22. ワーク マネージャ TIPS (1)起動直後のパフォーマンスの立ち上がりが悪い• Why? • 起動直後はスレッドプール内のスレッドは尐ない • スレッドは、スループットの測定で必要と判断された際に初めて増加する• 対応策 • 基本的には、ワークマネージャによる自動チューニングに任せる • 起動直後にピークアクセスが発生することが分かっている場合に限り、内 部オプションでスレッドプール内のスレッド数を調整することも有効 • config.xml <server> <name>AdminServer</name> <self-tuning-thread-pool-size-min>30</self-tuning-thread-pool-size-min> <listen-port>7001</listen-port> <listen-address>XXX.XXX.XXX.XXX</listen-address> </server> • 起動オプション -Dweblogic.SelfTuningThreadPoolSizeMin=30 Copyright ©2011, Oracle. All rights reserved. 22
  23. 23. ワーク マネージャ TIPS (2)高負荷時に JDBC データソースの最大接続数を超えた取得が行われ てしまう• Why? • 高負荷により自動チューニングでスレッド数が増えすぎている • 最大スレッド数制約によるスレッド数の制限が必要• 対応策 • 最大スレッド数制約にデータソース名を設定することが可能 • config.xml <max-threads-constraint> <name>MaxThreadsConstraint-0</name> <target>AdminServer</target> <count>-1</count> <connection-pool-name>AppDataSource</connection-pool-name> </max-threads-constraint> • データソースの最大接続数に連動してスレッド数を制限できる Copyright ©2011, Oracle. All rights reserved. 23
  24. 24. ワーク マネージャ TIPS (3)Web アプリケーションが突然 503(Service Unavailable) エラーを返す ようになった• Why? • アプリケーションの処理でスレッドがスタックしている(BEA-000337 とい う ID のメッセージで確認可能) • 過負荷防止のメカニズムにより、スレッドのスタックが検出されると、ワー クマネージャがシャットダウンされる • シャットダウンしたワーク マネージャへのリクエストは 503 エラーで返る• 対応策 • スレッドがスタックする原因を取り除く • ワーク マネージャでスレッドのスタックを無視するように設定 • ワーク マネージャでスタックを検出する時間、スレッドの数を設定 • config.xml <work-manager> <name>stuckthread_workmanager</name> <work-manager-shutdown-trigger> <max-stuck-thread-time>1200</max-stuck-thread-time> <stuck-thread-count>2</stuck-thread-count> </work-manager-shutdown-trigger> /work-manager> Copyright ©2011, Oracle. All rights reserved. 24
  25. 25. 【ご案内】「WebLogic Server勉強会」とはBy developers, for developers ユーザ企業、システムインテグレータ、ベンダーのそれぞれの立場を超え たWebLogic開発者同士の繋がりWebLogicアプリケーション開発者のための勉強会 スキルアップ 先人の成功・失敗談を共有 開発者間のネットワーキングTeam WebLogic 「やっぱり、WebLogic!」キャンペーン実施 「WebLogicつながり」の輪を広げよう! http://www.oracle.co.jp/campaign/weblogic/study/index.html開催実績(東京14回、大阪9回) http://wiki.oracle.com/page/WebLogic+Server%E5%8B%89%E5%BC %B7%E4%BC%9A Copyright ©2011, Oracle. All rights reserved. 25
  26. 26. まとめWebLogic Server勉強会に参加してスキルアップしよう。@オンライン、@東京、@大阪で開催「参加型」で運営していますので、「ネタ」お待ちしています。それでは、また、お会いしましょう。 Copyright ©2011, Oracle. All rights reserved.
  27. 27. スキルアップのための資料 Copyright ©2011, Oracle. All rights reserved.
  28. 28. OTN×ダイセミ でスキルアップ!! ・一般的な技術問題解決方法などを知りたい! ・セミナ資料など技術コンテンツがほしい! Oracle Technology Network(OTN)を御活用下さい。 http://www.oracle.co.jp/forum/forum.jspa?forumID=59 一般的技術問題解決にはOTN掲示版の 「Oracle WebLogic Server」をご活用ください ※OTN掲示版は、基本的にOracleユーザー有志からの回答となるため100%回答があるとは限りません。 ただ、過去の履歴を見ると、質問の大多数に関してなんらかの回答が書き込まれております。http://www.oracle.com/technetwork/jp/ondemand/index.html 過去のセミナ資料、動画コンテンツはOTNの 「OTNセミナー オンデマンド コンテンツ」へ※ダイセミ事務局にダイセミ資料を請求頂いても、お受けできない可能性がございますので予めご了承ください。 ダイセミ資料はOTNコンテンツ オン デマンドか、セミナ実施時間内にダウンロード頂くようお願い致します。 Copyright© 2011, Oracle. All rights reserved. 28
  29. 29. OTNセミナー オンデマンド コンテンツ ダイセミで実施された技術コンテンツを動画で配信中!! ダイセミのライブ感はそのままに、お好きな時間で受講頂けます。 最新情報つぶやき中 OracleMiddle_jp ・セミナ情報 ・お勧め情報 ・公開予告 など OTN トップページ http://www.oracle.com/technetwork/jp/index.html ページ左「基本リンク」>「OTN セミナー オンデマンド」※掲載のコンテンツ内容は予告なく変更になる可能性があります。 期間限定での配信コンテンツも含まれております。お早めにダウンロード頂くことをお勧めいたします。 Copyright© 2011, Oracle. All rights reserved. 29
  30. 30. Oracle エンジニアのための技術情報サイト オラクルエンジニア通信 最新情報つぶやき中 http://blogs.oracle.com/oracle4engineer/ oracletechnetjp• 技術資料 • ダイセミの過去資料や製品ホワイト ペーパー、スキルアップ資料などを 多様な方法で検索できます • キーワード検索、レベル別、カテゴ リ別、製品・機能別• コラム • オラクル製品に関する技術コラムを 毎週お届けします • 決してニッチではなく、誰もが明日 から使える技術の「あ、そうだったん こんな資料が人気です だ!」をお届けします  6か月ぶりに資料ダウンロードランキングの首位が交代! 新王者はOracle Database構築資料でした。  データベースの性能管理手法について、Statspack派も Enterprise Manager派も目からウロコの技術特集公開中 オラクルエンジニア通信 Copyright© 2011, Oracle. All rights reserved. 30
  31. 31. Oracle Databaseの価格ご存知ですか? 問題: Oracle Databaseの最小構成はいくらでしょうか? ① ヒント: Oracle Standard Edition Oneを 5Named User Plus(指名ユーザ) というのが最小構成です。 問題: ② Real Applications Clusters(RAC) Optionはいくらでしょうか? ヒント: RACはOracle Database Enterprise EditionのOptionです。答えはこちら↓ ログイン不要の簡単見積もり ライセンス見積もりヘルプ 検索 Copyright© 2011, Oracle. All rights reserved. 31
  32. 32. ITプロジェクト全般に渡る無償支援サービス Oracle Direct Conciergeサービス■パフォーマンス診断サービス ■システム構成診断サービス•Webシステム ボトルネック診断サービス NEW •Oracle Database構成相談サービス•データベースパフォーマンス 診断サービス •サーバー統合支援サービス •仮想化アセスメントサービス■移行支援サービス •メインフレーム資産活用相談サービス•SQL Serverからの移行支援サービス •BI EEアセスメントサービス•DB2からの移行支援サービス •簡易業務診断サービス•Sybaseからの移行支援サービス•MySQLからの移行支援サービス ■バージョンアップ支援サービス•Postgre SQLからの移行支援サービス •Oracle Databaseバージョンアップ支援サービス•Accessからの移行支援サービス •Weblogic Serverバージョンアップ支援サービス NEW•Oracle Application ServerからWeblogicへ •Oracle Developer/2000(Froms/Reports)移行支援サービス NEW Webアップグレード相談サービス オラクル社のエンジニアが 直接ご支援します お気軽にご活用ください! オラクル 無償支援 検索 Copyright© 2011, Oracle. All rights reserved. 32
  33. 33. 1日5組限定! 製品無償評価サービス 提供シナリオ一例 ・データベースチューニング ・無停止アップグレード ・アプリケーション性能・負荷検証 ・Webシステム障害解析インストールすることなく、すぐに体験いただけます• サービスご提供までの流れ 1. お問合せフォームより「製品評価サービス希望」と必要事項を明記し送信下さい 2. 弊社より接続方法手順書およびハンズオン手順書を送付致します 3. 当日は、弊社サーバー環境でインターネット越しに製品を体感頂けます ※サービスご提供には事前予約が必要です Web問い合わせフォーム「ダイデモ」をキーワードに検索することで申し込みホームページにアクセスできます http://www.oracle.com/jp/direct/services/didemo-195748-ja.html Copyright© 2011, Oracle. All rights reserved. 33
  34. 34. あなたにいちばん近いオラクル Oracle Direct まずはお問合せください Oracle Direct 検索 システムの検討・構築から運用まで、ITプロジェクト全般の相談窓口としてご支援いたします。 システム構成やライセンス/購入方法などお気軽にお問い合わせ下さい。 Web問い合わせフォーム フリーダイヤル 専用お問い合わせフォームにてご相談内容を承ります。http://www.oracle.com/jp/direct/inquiry-form-182185-ja.html 0120-155-096 ※こちらから詳細確認のお電話を差し上げる場合がありますので、ご登録さ ※月曜~金曜 9:00~12:00、13:00~18:00 れている連絡先が最新のものになっているか、ご確認下さい。 (祝日および年末年始除く) Copyright© 2011, Oracle. All rights reserved. 34
  35. 35. Copyright© 2011, Oracle. All rights reserved.
  36. 36. Copyright© 2011, Oracle. All rights reserved. 36

×