Your SlideShare is downloading. ×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Oracle WebLogic Serverチューニングのポイント

2,208

Published on

「Oracle WebLogic Serverチューニングのポイント」 …

「Oracle WebLogic Serverチューニングのポイント」

Oracle WebLogic Serverのチューニングの第一歩として、スレッド管理をはじめとしたOracle WebLogic Serverの設定とアプリケーションの設定について、基本的なアプローチと設定方法を紹介します。

日本オラクル オラクル・ユニバーシティ 岡田 大輔 

Published in: Technology
0 Comments
10 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
2,208
On Slideshare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
55
Comments
0
Likes
10
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Oracle WebLogic Server チューニングのポイント 日本オラクル株式会社 オラクルユニバーシティ 岡田 大輔 2013年11月27日 1 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 2. 以下の事項は、弊社の一般的な製品の方向性に関する概要を説明するもので す。また、情報提供を唯一の目的とするものであり、いかなる契約にも組み 込むことはできません。以下の事項は、マテリアルやコード、機能を提供す ることをコミットメント(確約)するものではないため、購買決定を行う際 の判断材料になさらないで下さい。オラクル製品に関して記載されている機 能の開発、リリースおよび時期については、弊社の裁量により決定されます 。 OracleとJavaは、Oracle Corporation 及びその子会社、関連会社の米国及びその他の国における登録商標です。 文中の社名、商品名等は各社の商標または登録商標である場合があります。 2 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 3. Agenda  WebLogic Serverのチューニング  アプリケーション/サービスのチューニング 3 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 4. WebLogic Serverのチューニ ング 4 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 5. チューニングの対象 各レイヤに対して適切なチューニングを行う アプリケーション WebLogic Server JVM OS H/W 5 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 今回の対象
  • 6. WebLogic Serverのチューニング  チューニングの目的: WebLogic Serverのリソースを効率的に使用して 最適なパフォーマンスを得る  主な設定項目 – スレッドプール・ワークマネージャ – データソースの容量設定 – などなど 6 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 7. WebLogic Serverのリクエスト処理 クライアントからのリクエストはスレッドで処理される リクエスト受信 リクエスト処理 WebLogic Server EAR リクエストはMuxer キューへ(リスンス SocketMuxer レッド) Muxerキュー Webコンテナ EJBコンテナ (フリープール) データ ソース ワークマネージャ 7001 データベース バックログ Muxerスレッド SocketMuxerによって 実行スレッドに引き渡 される 単一のスレッドプー スレッドプール ルの実行スレッドで リクエストを処理 WorkManager 7 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 8. リクエスト受信 接続バックログ  接続バックログ: サーバが受け入れることができる接続要求数  バックログ数を超える接続要求は拒否される – クライアントにConnection Refusedエラーを返す – 受入数を増加させる場合は『バックログの受入れ』を増やす 8 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 9. SocketMuxer Native Muxerを推奨  SocketMuxerは実装を選択可能 – Java Muxer  Pure-Javaソケットリーダースレッド  実行スレッドプールからスレッドを割り当て(デフォルトは33%) – Native Muxer(デフォルト)  プラットフォーム固有のネイティブソケットリーダースレッド  ソケットリーダスレッドは固定数の専用スレッドを使用 9 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 10. ソケット数とネイティブIOの設定 NIO Muxerを使用する場合に指定(~12.1.1): weblogic.socket.NIOSocketMuxer TIPS: WLS12.1.2はデフォルトでMuxer Class は有効化されている 10 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 11. 共有容量 キューの長さの制限  共有容量=待機中のリクエスト+実行中のリクエスト – 共有容量を超えた場合、リクエストは拒否される  Webアプリケーションへの要求  フェアシェアの低い非トランザクションRIMリクエスト 11 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 12. 自動チューニングスレッドプール  スレッドプールは自動チューニング (WLS9.x~) – スレッドは単一のスレッドプールで管理  ~WLS8.1のように実行キューとスレッドプールは一体ではない – 負荷状況に応じてスレッド数が増減する – 少ないスレッド数で起動可能なため起動時間への影響が少ない 12 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 13. スレッドプールのスレッド数を指定するには? 負荷が予め想定できる場合は効果的 TIPS: WLS12.1.2では管理コンソールで設定可能  スレッドプールのサイズ指定 ([サーバー]-[サーバー名]-[構成]-[チューニング]) – config.xml or WLSTで設定 – サーバの起動オプションでも指定可能 set JAVA_OPTIONS=%JAVA_OPTIONS% -Dweblogic.SelfTuningThreadPoolSizeMin=50 -Dweblogic.SelfTuningThreadPoolSizeMax=50 13 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 14. Tips: 起動オプションとconfig.xmlの関係 適用順に注意!  起動スクリプトのオプション指定はconfig.xmlの設定よりも優先され る 1. config.xmlを適用 WebLogic Server 2. オプションを適用 ServerMBean <server> <listen-port> 7003 </listen-port> … config.xml 14 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. ListenPort: 7005 7003 set JAVA_OPTIONS = %JAVA_OPTIONS% -Dweblogic.ListenPort=7005 setDomainEnv.cmd(sh)など config.xmlを汚さないので一時的な設定には最適 永続化する設定は、config.xmlに記述すること
  • 15. ワークマネージャとは? WLS9.xから導入されたスレッドスケジューリング機能  ワークマネージャ=実行スレッドのスケジューリング機能 – アプリケーションごとに柔軟な優先順位の設定が可能に  デフォルト・ワークマネージャ(default) – リクエストはデフォルト・ワークマネージャが処理 – 必要に応じてカスタムワークマネージャを追加定義可能  グローバルワークマネージャ(config.xml)  アプリケーションスコープワークマネージャ(デプロイメント記述子) 15 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 16. ワークマネージャの構成要素 要求クラスと制約  ワークマネージャ – 要求クラス … フェアシェア、応答時間、コンテキストのうち1つを指定 – 制約 … 最大スレッド数、最小スレッド数、容量を任意で指定 制約 1 要求クラス ワークマネージャ 制約 2 16 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 17. 要求クラス リクエストの重みを決定する 要求クラス 説明 フェアシェア要求クラス リクエスト割り当ての重みを指定 フェアシェアは1~1000の任意の数値を指定。 2つのワークマネージャにそれぞれフェアシェア10, 20を設定し た場合は1:2の割合でスレッドが割り当てられる 応答時間要求クラス 応答目標時間を指定 2つのワークマネージャにそれぞれ2000ms, 1000msと応答時間 を設定した場合は1:2の割合でスレッドが割り当てられる コンテキスト要求クラス ユーザ/グループ毎に要求クラスを指定 ユーザAにフェアシェア50、ユーザBにフェアシェア100の要求 クラスを設定した場合はユーザBのリクエストに多くスレッドが 割り当てられる 17 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 18. 制約 スレッド生成やリクエスト数を制限する 最大スレッド数制約 最大同時実行数 複数ワークマネージャで共有可能 最小スレッド数制約 最小同時実行数 主にデッドロック防止のために使用 容量制約 実行中+キューに滞留するリクエストの最大数 容量制約に達するとリクエストは拒否される 18 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 19. ワークマネージャの定義 グローバルワークマネージャ 19 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 20. ワークマネージャ 20 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 21. 要求クラス フェア・シェア比率は 他のフェア・シェアと の相対値 21 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 単位はミリ秒
  • 22. 制約 22 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 23. ワークマネージャの構成 ワークマネージャで使用する要求 クラスと制約をそれぞれ設定 スタックスレッドハンドラ: スタック・スレッドの無視 – スレッドがスタックしても ワークマネージャを停止しない TIPS: WLS12.1.2では追加設定可能 23 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 24. ワークマネージャの割り当て デプロイメント記述子で指定  Webアプリケーション Webアプリケーション 単位で指定  EJB Servlet単位で指定 weblogic.xml web.xml EJBコンポーネント 単位で指定 weblgic-ejb-jar.xml 24 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 25. ワークマネージャの割り当て デプロイメント記述子で指定  エンタープライズアプリケーション スタックスレッドハンドラの指定は任意 (EJB, Webアプリでも指定可能) weblogic-application.xml 25 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 26. 過負荷保護機能  サーバの処理能力を超えるリクエストを受入れ続けると過負荷状態に 陥る – システムを過負荷状態から保護・検出するための設定  スレッドプール内の要求数の制限 (共有容量)  HTTPセッション数の制限  メモリ不足例外発生時の終了・低メモリ状態の検出  スタック スレッドの処理 要設定。デフォルトでは何もしない – 過負荷状態のサーバは強制停止・再起動するように設定可能 26 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 27. オーバーロードの設定 FAILURE状態検出時のアクション - 無視してアクションを実行しない: 何もしない - このサーバをただちに強制停止する: サーバを停止 - このサーバを中断して必要な処理を実行する: サーバ を管理モードに OOME発生時のアクション - 無視してアクションを実行しない: 何もしない - サーバ・プロセスを終了する: サーバを停止 低メモリ状態検出のしきい値 →低メモリ状態中はHealthStateがOVERLOADEDになる - 最大しきい値: 低メモリ状態解消とみなされる比率 - 最小しきい値: 低メモリ状態とみなされる比率 27 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 28. まとめ リクエスト処理でポイントになる箇所 WebLogic Server スレッドプールのスレッドが EAR ワークマネージャによって使用 される SocketMuxer Webコンテナ スレッド数は負荷に応じて自動 チューニングされる 原則としてMuxerは NativeI/Oを使用 クライアント クライアント クライアント クライアント クライアント 7001 ワークマネージャに最大容量が設定 されているとスレッド割り当て待ち が発生する 最大容量を設定しないとスレッド数 WorkManager が増えすぎて適性な性能を得られな い場合がある 28 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. EJBコンテナ (フリープール) データ ソース SLSBのフリープール サイズが小さいとEJB 呼び出しで待ちが発 生する カスタムワークマネージャ を使用する場合はアプリ ケーション側で指定 データベース データベースへの接続 要求が最大容量を超え ると待ちが発生する
  • 29. アプリケーション/サービス のチューニング 29 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 30. Webアプリケーション JSPとHTTPSession  JSPに関する設定 JSPのリロードチェック間隔などはサーバ をプロダクション(本番)モードで起動して いれば無効化される – JSPは初回アクセス時に.classに変換される = コンパイル発生 – デプロイ前にコンパイル可能 > java weblogic.appc -forceGenreration XXX.war  HTTPSessionの設定 – セッションタイムアウト(timeout-secs)はデフォルト 3600 秒 – セッション数を制限したい場合は max-in-memory-sessionsを指定  デフォルトは -1 (無制限) セッション数の上限に達すると SessionCreationExceptionが発生。 →必要に応じて503エラーを返すように設定 30 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 31. EJB フリープールとキャッシュ  Stateless SessionBean – Beanインスタンスはフリープールで管理  リクエストごとに任意のインスタンスを使用 – プールサイズは同時アクセス数を目安に設定  Stateful SessionBean – Beanインスタンスはキャッシュで管理  クライアントごとに特定のインスタンスを使用  キャッシュサイズはできるだけ大きく – パッシベーションが発生しないのがベスト 31 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 32. EJBのフリープールとキャッシュ設定 weblogic-ejb-jar.xml インスタンス生成のオーバヘッドを低減し たい場合は initial = maxで設定 TIPS: 実行スレッド数や接続プール容量との 関係を考慮すること idle-timeout-seconds: パッシベーション対 象になるまでのアイドル時間(秒) session-timeout-seconds: パッシベーション されたBeanが削除されるまでの時間(省略 可) 32 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 33. データソース 容量の管理がキーポイント  アプリケーションで接続待ちが発生しないことが理想的 – 接続待ちが発生しないように最大容量を設定する  実行スレッド数を目安に設定を開始、負荷状況によって最大容量を決 定する – 原則は初期容量=最大容量  初期容量と最大容量に差があると容量増加時に待ちが発生する可能性 あり 33 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 34. Tips: 最大容量と最大スレッド数制約 データソースの最大容量を超える実行スレッドの生成を抑制するには?  ワークマネージャの最大スレッド数制約ではデータソースの最大容量 を指定することができる 解消できる問題点: 自動チューニングスレッドプールで負荷 に応じてスレッド数が増えてもデータ ソースの最大容量を超えてしまうと接続 待ちによる処理の遅延が発生する データソース名を指定 データソースの最大容量が容量制約数になる 34 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 35. その他のデータソース設定 StatementCache、PinnedToThreadとLLR  PreparedStatementはキャッシュ可能 – キャッシュ数とキャッシュアルゴリズム(LRU/Fixed)を指定  リクエスト処理でDBアクセス頻度が高い場合はPinnedToThreadを検討 – 実行スレッドとConnectionを関連付けてConnection予約のオーバーヘッド を低減 (最大容量=実行スレッド数になる)  JMS+DBアクセスで2PCになる場合はLLRを検討 – LLRに参加するデータソースは非XAで処理を行うため処理効率は高くなる  信頼性は2PCと同じ (ただし参加できるDBリソースは1つのみ) 35 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 36. 参考: モニタするMBean属性 MBean 属性 JDBCDataSourceRuntime CurrCapacity 必要に応じてHighCountも取得 ActiveConnectionsHighCount WaitingForConnectionHighCount ThreadPoolRuntime アクティブなスレッド数は以下で算出 ExcecuteTreadTotalCount - ExecuteThreadIdleCount WorkManager単位でのPending数を取得する 場合はRequestClassRuntime 36 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. ActiveConnectionsCurrentCount WaitingForConnectionCurrentCount ExecuteThreadTotalCount ExecuteThreadIdleCount StandbyThreadCount PendingUserRequestCounts
  • 37. 参考: モニタするMBean属性 MBean 属性 ServerRuntime OpenSocketsCurrentCount WebAppComponentRuntime OpenSessionsCurrentCount StatelessEJBRuntime PooledBeansCurrentCount BeansInUseCurrentCount WaiterCurrentCount JVMRuntime HeapFreeCurrent HeapSizeCurrent 37 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 38. Tips: HTTPリクエストの処理時間の取得 HTTPアクセスログの拡張フォーマットを利用  アクセスログの拡張フォーマットを使用するとHTTPリクエストの処理 時間を取得可能 フォーマットを 拡張 に変更 フォーマット(例): date time c-ip s-ip cs-method cs-uri cs-uri-query sc-status bytes time-taken 38 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 39. まとめ  WebLogic Serverでは自動チューニング機能や過負荷保護機能などリ ソースを効率良く使用する機能があります – デフォルト設定でもある程度の性能が得られますがWebLogic Serverのリ クエスト処理を把握して設定を行えばより効率的な処理を実行できます – WebLogic Serverだけでなくアプリケーション実装のチューニングも実施 してください やっぱりチューニングは総合力。 WebLogic Serverの基礎をしっかり固めてステップアップしましょう 39 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 40. Oracle Universityからのお知らせ  WebLogic Serverの管理方法を体系的に学習したい方に最適な研修コー スをご提供しています。 – Classroomトレーニングだけでなく、Live Virtual Classや『Oracle トレーニ ング・オンデマンド』など多様な受講形態から選択いただけます。 40 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 41. Oracle WebLogic Server 11g の学習は Oracle トレーニング・オンデマンドで! いまなら無償体験版を視聴可能です! Oracle WebLogic Server 11g: 管理 コースを90日間いつでも何度でも。 新時代のラーニングソリューション •インターネット経由でお好きな時間にお好きな場所で • 実際の講義をそのまま収録してストリーミング配信 •教室と同じ演習環境を6日間使用可能 •担当講師による Q&A •eKit(電子媒体テキスト)付き 41 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 42. ミドルウェア Oracle WebLogic Server 12c: 管理 I Oracle WebLogic Server 12c の運用管理スキルをしっかり習得 待望のWebLogic Server 12c(12.1.2)対応研修がいよいよ提供開始です。 このコースでは、アプリケーション・サーバー管理者がOracle WebLogic Server 12cのインストールおよび設定方法を習得することができ ます。管理コンソールやコマンドラインツール(WLST)などを使用してドメインを構成する方法やJava EEアプリケーションをサーバー にデプロイする方法についても説明します。さらに、Oracle WebLogic Server のプロキシとしてOracle HTTP Serverを設定し、WebLogic Serverクラスタによるアプリケーションのフェイルオーバーとロードバランシングをサポートする方法など、環境構築に必要なスキルと WebLogic Serverのモニタリングやログ情報の収集など運用に必要なスキルを実機演習を通して習得できます。さらに、Oracle WebLogic Server 12cで強化されたActive GridLink for RACの構成方法やWebLogic Server 12.1.2から使用可能な動的クラスタなど注目の新機能もカバ ーします。 コース内容 受講前提条件 対象者 コース日程 受講料 42 ■Oracle WebLogic Server概要 ■ドメインの作成 ■Administration Console ■ドメインのモニタリング ■アプリケーションのデプロイメント ■WebLogic Server セキュリティ ■ドメインのバックアップおよびリカバリ ■WebLogic Serverのインストールおよびパッチ適用 ■サーバーの起動および停止 ■JDBCデータソースの構成 ■ノードマネージャ ■WebLogic Serverクラスタリング ■トランザクション・サービスのコンフィグレーション ・Linux の基本的な操作方法の理解 ・Java EE の基礎知識(サーブレットや JSP など) ※推奨 ・Oracle WebLogic Server 管理者 ・Javaアプリケーション開発者 ・アーキテクト 5日間 日程の詳細は Oracle University Webサイト にてご確認ください。 定価¥374,850(税込) Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 開催日程 ■2014/1/20(月) – 1/24(金) トレーニングキャンパス赤坂 ※Oracle PartnerNetwork会員様は、パートナー割引価格で受講いただけます。
  • 43. キャンペーンのご案内: OCJP Gold SE 7 試験受験を検討されている皆さまに朗報です!  OCJP Gold SE 7 試験限定 再受験可能受験チケット発売 万が一試験に不合格になってしまっても同一試験に再挑戦可能な受験チケットを特 別販売します。この機会にJava認定資格に挑戦してみてください! – 対象試験:  Java SE 7 Programmer II (1Z0-804) / Upgrade to Java SE 7 Programmer(1Z0-805) – 販売期間: 2013年12月2日(月) ~ 2014年2月28日(金)  枚数限定(200枚)販売につき予定数に達した場合は販売を終了します。予めご了承ください お問い合せは オラクルユニバーシティ まで http://www.oracle.com/jp/education/ Tel: 0120-155-092 43 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 44. 44 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 45. 45 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.

×