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