• Share
  • Email
  • Embed
  • Like
  • Private Content
WebLogic Serverチューニングのポイント
 

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

on

  • 3,402 views

WebLogic Serverの運用を行う際に押さえておきたいチューニングのポイントについて、スレッド管理やJDBCデータソースをはじめとしたWebLogic ...

WebLogic Serverの運用を行う際に押さえておきたいチューニングのポイントについて、スレッド管理やJDBCデータソースをはじめとしたWebLogic Serverの設定とアプリケーションの設定の二つの観点から紹介します。

日本オラクル株式会社 オラクル ユニバーシティ 岡田 大輔

Statistics

Views

Total Views
3,402
Views on SlideShare
3,402
Embed Views
0

Actions

Likes
2
Downloads
74
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

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

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