Movatterモバイル変換


[0]ホーム

URL:


Shogo Wakayama, profile picture
Uploaded byShogo Wakayama
PDF, PPTX4,978 views

「Oracle Database + Java + Linux」 環境における性能問題の調査手法 ~ミッションクリティカルシステムの現場から~ Part.1

2017/1/17 JPOUG in 15 minutes #3にて発表した内容です。昨今、システムの大規模(集約)化がトレンドとなっています。そのようなミッションクリティカルシステムにおいて、いかにして性能問題調査を行っていくかを解説します。

Embed presentation

Download as PDF, PPTX
「Oracle Database + Java + Linux」環境における性能問題の調査手法~ミッションクリティカルシステムの現場から~Part. 1若山 勝吾2017. 01. 17© Shogo Wakayama
はじめに昨今、システムの大規模(集約)化がトレンドとなっています。そのようなミッションクリティカルシステムにおいて、いかにして性能問題調査を行っていくかを解説します。2仮想化クラウド化マルチテナント大規模(集約)化スケールアウト構成情報量の爆増24時間無停止かさむ保守・運用費既存システムのHW老朽化予測困難な突発的トラフィック被災時対策製品サポート期間の終了サービス連携の多様化ログ蓄積の限界設備設置スペース不足迅速なAP開発要件複数システムをとりまく課題の例新たなシステム構成パッチ最新化
自己紹介: 若山 勝吾• ミッションクリティカルシステム専門性能改善エンジニア⇒ 性能試験と性能問題解決が得意です。• 10年間、性能プロフェッショナルチームに所属(50を超えるプロジェクトで実績を積む)• Javaプロファイラ、性能モニタリングツール、負荷生成ツールの開発・導入支援を経験3
アジェンダ• ミッションクリティカルシステムにおける性能問題の考え方• 性能問題の調査手法の解説4
• ミッションクリティカルシステムにおける性能問題の考え方• 性能問題の調査手法の解説5-戦略編-
ミッションクリティカルシステムにおける性能問題とは?• 性能に起因するサービス影響のこと。• 処理遅延は性能問題である。6処理遅延許容範囲を超過スループット低下リソース使用率が高燃費としては悪い処理遅延する寸前処理遅延するとスループットも低下リソース限界時は応答時間が遅延対象の業務量が少ないだけかも性能問題
7外的調査• 遅延範囲(サービス影響)を把握し、• 応急処置案を見極める。内的調査• 被疑箇所の詳細を分析し、• 遅延原因を解明する。24x7ミッションクリティカルシステムにおいては、専門家/有識者がいなくても迅速対応できることが求められる。ミッションクリティカルシステムにおける性能問題の調査とは?
クライアント側 サーバ側本番環境で処理遅延が発生!①あなたなら、どこから調査しますか?8遅い!遅い!遅い!遅い!Web/APサーバ(WebLogic)DBサーバ(OracleDB)小規模であれば、得意なレイヤから調査するのもアリ。(処理種別・ノードが少なければ消去法作戦が可能)FW/LBサーバ側で遅いな調査対応者ユーザSW性能問題の所在説明をシンプルにするため、サーバ側に問題がある状況としています。WAN
9WANDBサーバ(OracleDB)本番環境で処理遅延が発生!②あなたなら、どこから調査しますか?遅い!遅い!遅い!遅い!遅い!遅い!遅い!遅い!遅い!遅い!遅い!遅い!遅い!遅い!遅い!遅い!大規模であれば、調査の仕組み化が必要不可欠。(仕組みが無いと、高度な専門知識があっても苦戦)FW/LBWeb/APサーバ(WebLogic)調査対応者クライアント側ユーザSWバッチ系OLTP系 業務DBユーザ管理DBサーバ側で遅いな性能問題の所在調査対象が多くて大変!サーバ側説明をシンプルにするため、サーバ側に問題がある状況としています。
10WAN処理遅延が発生!③調査完了するまで、状況を放置して大丈夫?遅い!遅い!遅い!遅い!遅い!遅い!遅い!遅い!遅い!遅い!遅い!遅い!遅い!遅い!遅い!遅い!ミッションクリティカルシステムでは、サービス継続を優先することが重要。(原因解明は後回しでよい)もう我慢限界!!クライアント側ユーザ DBサーバ(OracleDB)FW/LBWeb/APサーバ(WebLogic)調査対応者SWバッチ系OLTP系 業務DBユーザ管理DB性能問題の所在一体何が原因だろう…見落としはないよな…サーバ側
• 応急処置案の見極め• 流量制御、被疑ノードの切り離し• 各種分析ツールで情報採取• CPU時間と待機時間の分析1. 性能問題発生2. 遅延範囲の確認3. 応急処置 ※可能な場合4. 被疑箇所の詳細分析5. 遅延原因の解明6. 改善対処(治療)7. 経過観察118. 解決• 性能問題の所在(サーバ側かどうか)の特定• 処理(機能/API)種別の特定• 被疑ノードの特定• 仮説と立証• サポート問合せ• 暫定対処(最早解) と 本格対処(最適解)• 改善効果の評価• 予兆監視主なタスク• 発生条件の特定• 遅延メカニズムの理解内的調査外的調査ミッションクリティカルシステムにおける性能問題発生から解決までの流れ
• ミッションクリティカルシステムにおける性能問題の考え方• 性能問題の調査手法の解説12-戦術編-
1. 性能問題発生2. 遅延範囲の確認3. 応急処置 ※可能な場合4. 被疑箇所の詳細分析5. 遅延原因の解明6. 改善対処(治療)7. 経過観察138. 解決• 性能問題の所在(サーバ側かどうか)の特定• 処理(機能/API)種別の特定• 被疑ノードの特定• 応急処置案の見極め• 流量制御、被疑ノードの切り離し• 各種分析ツールで情報採取• CPU時間と待機時間の分析• 仮説と立証• サポート問合せ• 暫定対処(最早解) と 本格対処(最適解)• 改善効果の評価• 予兆監視• 発生条件の特定• 遅延メカニズムの理解内的調査外的調査主なタスクミッションクリティカルシステムにおける性能問題発生から解決までの流れ今回は 3 まで解説します
1. 性能問題発生2. 遅延範囲の確認3. 応急処置 ※可能な場合4. 被疑箇所の詳細分析5. 遅延原因の解明6. 改善対処(治療)7. 経過観察8. 解決内的調査外的調査混み合ってて、先に進まない!!一体、何が起きているのか…?1. 性能問題発生14
15外的調査• 遅延範囲(サービス影響)を把握し、• 適切な応急処置を見極める。内的調査• 被疑箇所の詳細を分析し、• 遅延原因を解明する。24x7ミッションクリティカルシステムにおいては、専門家/有識者がいなくても迅速対応できることが求められる。再掲ミッションクリティカルシステムにおける性能問題の調査とは?
1. 性能問題発生2. 遅延範囲の確認3. 応急処置 ※可能な場合4. 被疑箇所の詳細分析5. 遅延原因の解明6. 改善対処(治療)7. 経過観察8. 解決内的調査外的調査16遅延してるのはどのルート?2. 遅延範囲の把握
17遅延箇所を可視化できれば、一目瞭然⇒ 処理(機能/API)種別・ノードを特定可能<出典: Oracle Management Cloud - Application Performance Monitoring>https://docs.oracle.com/en/cloud/paas/management-cloud/application-performance-monitoring.htmlOracle Management Cloudを利用した性能問題調査の例遅延ノードを特定遅延処理を特定遅延箇所を特定
javaプロセス oracle<SID>プロセス18遅延箇所を可視化できれば、一目瞭然⇒ ノード>プロセス>スレッド>処理を特定実行スレッド (weblogic.kernel.Default)Web/APサーバ(WebLogic)DBサーバ(OracleDB)ユーザセッションソケット通信スレッド(weblogic.socket.Muxer)データアクセス層ビジネスロジック層プレゼンテーション層HTTPリクエストHTTPレスポンススレッド実行 API呼出SQL発行SQL実行API呼出SQL結果遅延箇所
javaプロセス oracle<SID>プロセス19APにトランザクション計測機能を組み込む⇒ 応答時間・実行回数を時系列で集計しようWeb/APサーバ(WebLogic)DBサーバ(OracleDB)HTTPリクエストHTTPレスポンススレッド実行 API呼出SQL発行SQL実行API呼出①処理(機能/API)種別を特定SQL結果開始時刻終了時刻開始時刻②AP-DB間ルートを特定呼出し元AP情報を指定・JDBC4.0以降ならsetClientInfo()※DBMS_APPLICATION_INFO相当終了時刻実行スレッド (weblogic.kernel.Default)ソケット通信スレッド(weblogic.socket.Muxer)データアクセス層ビジネスロジック層プレゼンテーション層ユーザセッション(オプション)SQL文のコメント部に処理IDを埋め込む
20そもそもAPに組み込むことが厳しいときは?⇒ APM※製品を導入 ※ApplicationPerformanceManagementの略APM製品を導入すれば、ロジック改変なしに組込可。• Oracle社– Oracle Enterprise Manager + Java Flight Recorder※WebLogic EEで利用可能※Oracleクラウド(Java CS、Application Container CS)で利用可能– Oracle Management Cloud (APM Java Agent)• その他ベンダ– dynaTrace– AppDynamics– New Relic– CA IntroscopeJVM内部調査の最強ツール
21あるいは、専門家/有識者の「現場駆け付け」が頼り# APM機能の代替手段 留意事項1 Web/APのアクセスログ⇒URLを手がかりに遅延した処理を特定・アクセスログのURLからは、内部処理を特定できない場合がある。(あらゆる処理が同じURLというシステムもある)※apacheの場合、アクセスログの応答時間にはクライアントへのレスポンス送信時間が含まれるので注意。2 AWR(またはSTATSPACK)、ASH(またはv$session, その他v$)⇒DB内部の遅延状況を分析・SQLの発行元AP処理を特定するのは容易ではない。(基本はSQL文を手がかりに推定)3 Javaプロファイラとスレッドダンプ⇒時間を要している関数を特定・CPU負荷影響があるため、長時間の情報採取には適さない。4 APのログレベルをDEBUGに変更⇒処理の細部を追跡・大量ログ出力に伴う性能懸念が想定されるため、安易に行うのは危険。・ログ解析作業に時間を要する。• 調査の作業効率化が鍵となる
1. 性能問題発生2. 遅延範囲の確認3. 応急処置 ※可能な場合4. 被疑箇所の詳細分析5. 遅延原因の解明6. 改善対処(治療)7. 経過観察8. 解決内的調査外的調査22遅延ルート回避、交通量規制3. 応急処置
23• 遅延範囲を手がかりに、応急処置案を見極める。流量制御※減らす被疑ノード切り離し(継続調査)被疑ノード切り離し【被疑ノード】全体的【処理(機能/API)種別】全体的一部正常ノードのみで継続※このケースの遅延原因としては、HW不調や偶発的問題の可能性が想定される。一部正常ノードのみで継続サービスの継続を優先するシステムにおいては、疑わしき構成要素を積極的にシステムから切り離せ(“フェールソフト”の考え方)。<出典:IPA「情報処理システム高信頼化教訓集(ITサービス編)」2015年度版>https://www.ipa.go.jp/sec/reports/20160331_1.htmlいかにしてサービスを継続させるか?⇒ まずは応急処置全体影響の緩和A) 待ち行列に伴う全体影響B) CPU負荷に伴う全体影響そのほかの応急処置として、・AP資材や設定の戻しという案もあるが要注意。カン頼りに応急処置を行うと、二次被害につながりやすい。
24流量制御 ※重要度の低い処理を減らすA) 待ち行列に伴う全体影響の緩和1. 遅延発生直前で、トランザクション量が急増した処理を特定2. 当該処理を流量制御3. 待ち行列に伴う全体影響が緩和調査観点• トランザクション量を時系列で確認• システム全体のトランザクション量に対し、支配的な処理に着目(量が多いもの)流量制御方法の例• ロードバランサの流量制御機能• WebLogicのワークマネージャ機能• AP多重度、デキュー間隔などの調整※処置の要否は慎重に判断すること。(例えば、遅延頻度が低なら静観)「混雑したから遅延した」という仮説に基づく対応となる。同時スレッド数、接続数、キュー滞留数、エラー数など、証拠確認するのが望ましい。
25流量制御 ※重要度の低い処理を減らすB) CPU負荷に伴う全体影響の緩和1. 遅延ノードのCPU使用率を確認2. CPU負荷が高い場合(※1)、CPU負荷の高い処理を特定3. 当該処理を流量制御4. CPU負荷に伴う全体影響が緩和調査ツール• OS(Linux)の場合: top + perf (+gstack)• Javaの場合: JFR, VisualVM• DBの場合: AWR, ASH, v$session調査ツール• OS(Linux)の場合: mpstat, vmstat※処置の要否は慎重に判断すること。(例えば、遅延頻度が低なら静観)流量制御方法の例• ロードバランサの流量制御機能• WebLogicのワークマネージャ機能• AP多重度、デキュー間隔などの調整※1 CPUのHyperThreading機能を有効にしている際は、計測されたCPU使用率が80%程度の場合でも、実際のCPU使用率は限界近いことが想定される。
今回のまとめ• 大規模システムにおいては、調査の仕組み化が必要• 遅延範囲の特定は、処理種別毎、ノード毎に行う• サービス継続優先のため、応急処置案を見極める• 調査の際は、客観的で事実に即した、的確な分析を戦略に基づき、迅速な対応を目指しましょう!26
参考: 被疑箇所調査用のOS(Linux)コマンド27# CPU負荷の高いプロセスの調査top -c -d <計測間隔[秒]># プロセス状態の調査 (メモリ使用量, 累計CPU時間, 実行状態)ps auxfww または ps axww -o user,pid,ppid,stat,rss,etime,cputime,wchan:25,cmd# プロセス内部で、CPU負荷の高い処理の調査 (関数ごとの%CPU, コールグラフ)perf record -F 997 -g -o <出力ファイル名> -p <PID> sleep <計測時間[秒]>perf report -v -n --showcpuutilization --stdio -i <出力したファイル名># スタックトレース取得(perfのコールグラフ補完) ※SIGSTOPによる一瞬停止を伴うことに留意gstack <PID># プロセスの外部(システムコール)で待ちが生じている箇所の調査lsof -p <PID>strace -f -ff -tt -T -v -x -s 256 -o <出力ファイル名> -p <PID>• 事前に試験環境(同じOS ver.)で動作検証しておく。• 影響懸念のあるコマンドは極力使用しない。【調査に役立ったコマンドの紹介】 想定外の挙動となる可能性に備え、いきなり本番環境での実行は控える

Recommended

PDF
SQL大量発行処理をいかにして高速化するか
PDF
[Oracle DBA & Developer Day 2016] しばちょう先生の特別講義!!ストレージ管理のベストプラクティス ~ASMからExada...
PPTX
Oracle Database Vaultのご紹介
PDF
S13 Oracle Database を Microsoft Azure 上で運用する為に~基本事項とベストプラクティス
PDF
GoldenGateテクニカルセミナー2「Oracle GoldenGate 新機能情報」(2016/5/11)
PDF
監査ログをもっと身近に!〜統合監査のすすめ〜
PPTX
iostat await svctm の 見かた、考え方
PPT
障害とオペミスに備える! ~Oracle Databaseのバックアップを考えよう~
PDF
シンプルでシステマチックな Oracle Database, Exadata 性能分析
PPTX
Oracle Audit Vault and Database Vault のご紹介
PPTX
しばちょう先生が語る!オラクルデータベースの進化の歴史と最新技術動向#3
PDF
AlmaLinux と Rocky Linux の誕生経緯&比較
PDF
Oracle WebLogic Server製品紹介資料(2020年/3月版)
PDF
雑なMySQLパフォーマンスチューニング
PDF
AWS Black Belt Techシリーズ Amazon EMR
PDF
Oracle GoldenGate導入Tips
PDF
Oracle GoldenGateでの資料採取(トラブル時に採取すべき資料)
PDF
Oracle Real Application Clusters 19c- Best Practices and Internals- EMEA Tour...
PDF
Oracle Integration Cloud Process Automation概要資料(20200507版)
PDF
Apache Hadoop YARNとマルチテナントにおけるリソース管理
PDF
Db2 v11.5.4 高可用性構成 & HADR 構成パターンご紹介
PDF
【Oracle Cloud ウェビナー】WebLogic Serverのご紹介
PDF
Oci object storage deep dive 20190329 ss
PDF
オンプレML基盤on Kubernetes 〜Yahoo! JAPAN AIPF〜
PDF
Oracle Integration Cloud 概要(20200507版)
PDF
Oracle Database 11g,12cからのアップグレード対策とクラウド移行 (Oracle Cloudウェビナーシリーズ: 2021年7...
PPTX
Database Cloud Service/Exadata Cloud Service/Exadata Cloud at Customer サービスアッ...
PDF
しばちょう先生による特別講義! RMANバックアップの運用と高速化チューニング
PDF
基礎から学ぶ PostgreSQL の性能監視 (PostgreSQL Conference Japan 2025 発表資料)
PPTX
Postgresql安定運用のご提案

More Related Content

PDF
SQL大量発行処理をいかにして高速化するか
PDF
[Oracle DBA & Developer Day 2016] しばちょう先生の特別講義!!ストレージ管理のベストプラクティス ~ASMからExada...
PPTX
Oracle Database Vaultのご紹介
PDF
S13 Oracle Database を Microsoft Azure 上で運用する為に~基本事項とベストプラクティス
PDF
GoldenGateテクニカルセミナー2「Oracle GoldenGate 新機能情報」(2016/5/11)
PDF
監査ログをもっと身近に!〜統合監査のすすめ〜
PPTX
iostat await svctm の 見かた、考え方
PPT
障害とオペミスに備える! ~Oracle Databaseのバックアップを考えよう~
SQL大量発行処理をいかにして高速化するか
[Oracle DBA & Developer Day 2016] しばちょう先生の特別講義!!ストレージ管理のベストプラクティス ~ASMからExada...
Oracle Database Vaultのご紹介
S13 Oracle Database を Microsoft Azure 上で運用する為に~基本事項とベストプラクティス
GoldenGateテクニカルセミナー2「Oracle GoldenGate 新機能情報」(2016/5/11)
監査ログをもっと身近に!〜統合監査のすすめ〜
iostat await svctm の 見かた、考え方
障害とオペミスに備える! ~Oracle Databaseのバックアップを考えよう~

What's hot

PDF
シンプルでシステマチックな Oracle Database, Exadata 性能分析
PPTX
Oracle Audit Vault and Database Vault のご紹介
PPTX
しばちょう先生が語る!オラクルデータベースの進化の歴史と最新技術動向#3
PDF
AlmaLinux と Rocky Linux の誕生経緯&比較
PDF
Oracle WebLogic Server製品紹介資料(2020年/3月版)
PDF
雑なMySQLパフォーマンスチューニング
PDF
AWS Black Belt Techシリーズ Amazon EMR
PDF
Oracle GoldenGate導入Tips
PDF
Oracle GoldenGateでの資料採取(トラブル時に採取すべき資料)
PDF
Oracle Real Application Clusters 19c- Best Practices and Internals- EMEA Tour...
PDF
Oracle Integration Cloud Process Automation概要資料(20200507版)
PDF
Apache Hadoop YARNとマルチテナントにおけるリソース管理
PDF
Db2 v11.5.4 高可用性構成 & HADR 構成パターンご紹介
PDF
【Oracle Cloud ウェビナー】WebLogic Serverのご紹介
PDF
Oci object storage deep dive 20190329 ss
PDF
オンプレML基盤on Kubernetes 〜Yahoo! JAPAN AIPF〜
PDF
Oracle Integration Cloud 概要(20200507版)
PDF
Oracle Database 11g,12cからのアップグレード対策とクラウド移行 (Oracle Cloudウェビナーシリーズ: 2021年7...
PPTX
Database Cloud Service/Exadata Cloud Service/Exadata Cloud at Customer サービスアッ...
PDF
しばちょう先生による特別講義! RMANバックアップの運用と高速化チューニング
シンプルでシステマチックな Oracle Database, Exadata 性能分析
Oracle Audit Vault and Database Vault のご紹介
しばちょう先生が語る!オラクルデータベースの進化の歴史と最新技術動向#3
AlmaLinux と Rocky Linux の誕生経緯&比較
Oracle WebLogic Server製品紹介資料(2020年/3月版)
雑なMySQLパフォーマンスチューニング
AWS Black Belt Techシリーズ Amazon EMR
Oracle GoldenGate導入Tips
Oracle GoldenGateでの資料採取(トラブル時に採取すべき資料)
Oracle Real Application Clusters 19c- Best Practices and Internals- EMEA Tour...
Oracle Integration Cloud Process Automation概要資料(20200507版)
Apache Hadoop YARNとマルチテナントにおけるリソース管理
Db2 v11.5.4 高可用性構成 & HADR 構成パターンご紹介
【Oracle Cloud ウェビナー】WebLogic Serverのご紹介
Oci object storage deep dive 20190329 ss
オンプレML基盤on Kubernetes 〜Yahoo! JAPAN AIPF〜
Oracle Integration Cloud 概要(20200507版)
Oracle Database 11g,12cからのアップグレード対策とクラウド移行 (Oracle Cloudウェビナーシリーズ: 2021年7...
Database Cloud Service/Exadata Cloud Service/Exadata Cloud at Customer サービスアッ...
しばちょう先生による特別講義! RMANバックアップの運用と高速化チューニング

Similar to 「Oracle Database + Java + Linux」 環境における性能問題の調査手法 ~ミッションクリティカルシステムの現場から~ Part.1

PDF
基礎から学ぶ PostgreSQL の性能監視 (PostgreSQL Conference Japan 2025 発表資料)
PPTX
Postgresql安定運用のご提案
PDF
(Tech DeepDive #1) Java Flight Recorder を活用した問題解決
PDF
perfを使ったPostgreSQLの解析(前編)
PPTX
システムパフォーマンス勉強会#1
PDF
現場の”今”を知る、これからのビッグデータ分析・活用のすすめ
PDF
実例Javaトラブルシューティング! 〜稼働中のシステムを立て直した半年間の軌跡
PDF
ログ分析からセキュリティ監視まで:Oracle Management Cloudで実現するIT運用データのビッグデータ分析 [Oracle Cloud D...
PPTX
Oracle Management Cloudのご紹介
PDF
Java Flight Recorderの紹介 at Java Day Tokyo 2015
PPTX
アプリケーション性能を管理するのに必要なこと
PDF
C22 Oracle Database を監視しようぜ! by 山下正/内山義夫
PPTX
DBA から開発者への情報提供
PPTX
システムパフォーマンス勉強会#4
PPTX
システムパフォーマンス勉強会#4
PDF
20160927_守るべきは、大量の情報資産を管理するデータベース! ~ユーザ事例から見るデータベースのセキュリティ対策~ by 株式会社インサイトテクノ...
PDF
データファースト開発
PDF
性能問題を起こしにくい 強いDBシステムの作り方(Ver. 2018.9)
PDF
【講演資料】ビッグデータ時代の経営を支えるビジネスアナリティクスソリューション
PDF
20170413_データレプリケーション技術を適用したデータベース移行と分析基盤の構築 by 株式会社インサイトテクノロジー 森田俊哉
基礎から学ぶ PostgreSQL の性能監視 (PostgreSQL Conference Japan 2025 発表資料)
Postgresql安定運用のご提案
(Tech DeepDive #1) Java Flight Recorder を活用した問題解決
perfを使ったPostgreSQLの解析(前編)
システムパフォーマンス勉強会#1
現場の”今”を知る、これからのビッグデータ分析・活用のすすめ
実例Javaトラブルシューティング! 〜稼働中のシステムを立て直した半年間の軌跡
ログ分析からセキュリティ監視まで:Oracle Management Cloudで実現するIT運用データのビッグデータ分析 [Oracle Cloud D...
Oracle Management Cloudのご紹介
Java Flight Recorderの紹介 at Java Day Tokyo 2015
アプリケーション性能を管理するのに必要なこと
C22 Oracle Database を監視しようぜ! by 山下正/内山義夫
DBA から開発者への情報提供
システムパフォーマンス勉強会#4
システムパフォーマンス勉強会#4
20160927_守るべきは、大量の情報資産を管理するデータベース! ~ユーザ事例から見るデータベースのセキュリティ対策~ by 株式会社インサイトテクノ...
データファースト開発
性能問題を起こしにくい 強いDBシステムの作り方(Ver. 2018.9)
【講演資料】ビッグデータ時代の経営を支えるビジネスアナリティクスソリューション
20170413_データレプリケーション技術を適用したデータベース移行と分析基盤の構築 by 株式会社インサイトテクノロジー 森田俊哉

「Oracle Database + Java + Linux」 環境における性能問題の調査手法 ~ミッションクリティカルシステムの現場から~ Part.1


[8]ページ先頭

©2009-2025 Movatter.jp