19 レスポンスタイム = サービスタイム+ キュータイム • デバイスで処理につかった時間がサービスタイム、キュー待ち時間 がキュータイム CPU なら ON CPUCPUならランキュー 出典:Systems Performance: Enterprise and the Cloud [ISBN-10:0133390098]
23 待機はシステムコールや他のプロセス待ち時間 • ユーザーモードで ONCPU 以外のシステムコール発行後のカーネ ルモード、スリープの時に待機時間 SP SP BP ハードウェア OSカーネル ユーザープロセス システムコール 割込みハンドラ • Enqueue • Latch • Mutex • log file sync … • SQL*Net message from client• db file sequential/scattered read • direct path read 待機時間 待機時間 待機時間 ON CPU
24.
24 OSから見ると待機は Sleep /Disk Sleep の2種類 D OR S ON CPU Sleep Disk Sleep Runnable •ON CPU の時間が DB CPU •システムコール発行後のカーネルモードで ON CPU の時間は待機時間に入る •Latch、mutex などのスピンロックは ON CPU でス ピンしている時間は DB CPU に計上される •TCP/IP通信で、ソケットバッファ に書いて送信後のクライアントか らのパケット到着待ちのときは Sleep する •latch、mutex などの待機時間はス ピンでタイムアウト後に Sleep した 時間 •I/Oシステムコール発効後はカーネルモー ドにコンテキストスイッチ後、割込不可 でスリープする(CPUは使っていない) •CPUが使われてなくてこの状態のプロセ スがいると、iowat に計上される •ランキュー待ち時間は DB CPU には含まれない db file sequential/scattered read direct path read SQL*Net message to client SQL*Net message from client
28 OS は USEメソッドで分析 • CPU、メモリ、ストレージなどのコンポーネントをUtilization、 Saturation、Errorsの3つでボトルネックが発生していないか 出典:Systems Performance: Enterprise and the Cloud [ISBN-10:0133390098]
29.
29 DBインスタンスは時間ベースで分析 • DBで時間を使っているか • DBTime の内訳をドリルダウン 出典:Optimizing Oracle Performance By: Cary Millsap, Jeff Holt(ISBN-13: 978-0596005276) Introduction to Time-Based Analysis: Stop the Guessing!(Craig A. Shallahamer, OraPub,inc.) DB Time AP Time Figure 1-1
30.
30 チューニング効果の高いSQLをリストアップ • Elapsed、CPU Time、Gets、Readsでマトリックス化 • チューニング効果の高いSQLをリストアップ DB Time に 占める割合 •SQL ordered by Elapsed time / CPU Time / Gets で 1位 •SQLチューニングで Buffer Gets を減らすとCPU使用率 が下がる •インスタンス全体の 11.7% のため効果は高い 出典: http://www.orapub.com/ppts-2015-ausoug-stop-guessing-use-oracle-time-based-analysis
34 DBインスタンス分析項目例(1/3) 中項目 小項目 チェック内容分析対象データ 分析対象項目 仕事量 SQL実行回数(秒間) なし AWR Report [Load Profile]-[Executes] トランザクション数 (秒間) なし AWR Report [Load Profile]-[Transactions] ログオンユーザー数 なし AWR Report [Key Instance Activity Stats]-[logons cumulative] REDO生成量 (秒間) なし AWR Report [Load Profile]-[Redo size (bytes)] ハードパース回数(秒間) なし AWR Report [Load Profile]-[Hard parses] 物理読込量 (秒間) なし AWR Report [Load Profile]-[Physical read ] 論理読込量 (秒間) なし AWR Report [Load Profile]-[Logical read] インターコネクト通信量(秒間) なし AWR Report [Load Profile]-[Global Cache blocks received] / [Global Cache blocks served]
35.
35 DBインスタンス分析項目例(2/3) 中項目 小項目 チェック内容分析対象データ 分析対象項目 DB処理時間 アクティブセッション数 ・アクティブセッション数が CPU_COUNTを超えていな いか AWR Report [Wait Classes by Total Wait Time]-[Avg Active Sessions] 時間モデル統計 なし AWR Report [Time Model Statistics] 待機クラス なし AWR Report [Foreground Wait Class] Top N 待機イベント ・enqueue、latch、mutex 等の割合が高い場合は深堀調 査を行う ・平均待機時間が長い待機イ ベントがないか AWR Report [Top 10 Foreground Events by Total Wait Time] I/Oレスポンス 20ms を上回っていないか AWR Report [Foreground Wait Events] [Wait Event Histogra] [Wait Event Histogram Detai] キャッシュフュージョン平均ブロッ ク転送時間 20ms を上回っていないか AWR Report [Global Cache and Enqueue Services - Workload Characteristics]-[Avg global cache cr/current block receive time (ms)] I/Oは合計ではなく平均やヒストグラムでレスポンスが健全か見る
36.
36 DBインスタンス分析項目例(3/3) 中項目 小項目 チェック内容分析対象データ 分析対象項目 メモリ使用状 況 SGA内訳 AWR Report [SGA Breakdown Difference] 共有プール内訳 AWR Report [SGA Breakdown Difference] ラージプール内訳 AWR Report [SGA Breakdown Difference] 共有プール・ラージプールの immediate 拡張有無 AWR Report [Memory Dynamic Components] バッファキャッシュヒット率 ・オンラインで95%を下回っていないか ・バッ チで90を下回らないか AWR Report [Instance Efficiency Percentages] RACバッファキャッシュヒット 率 ・なし AWR Report [Global Cache Efficiency Percentages (Target local+remote 100%) ] ライブラリキャッシュヒット率 ・オンラインで95%を下回っていないか ・バッ チで90を下回らないか AWR Report [Instance Efficiency Percentages] SGA Target Advisory ・バッファキャッシュ拡張によりI/O量削減の可能性が高 いか AWR Report [SGA Target Advisory] BufferPoolAdvisory ・バッファキャッシュ拡張によりI/O量削減の可能性が高 いか AWR Report [Buffer Pool Advisory] PGA使用量 ・PGA_AGGREGATE_TARGET を超えていないか AWR Report [PGA Aggr Target Stats]
37.
37 高負荷SQL分析項目例 中項目 チェック内容 分析対象データ分析対象項目 実行回数の多いSQL ・ベースラインおよび他の期間との比較 AWR Report SQL ordered by Executions 物理読込量の多いSQL(総計/1回当り) ・時系列で右肩上がりで増えているSQLがないか AWR Report SQL ordered by Reads 論理読込量の多いSQL(総計/1回当り) ・時系列で右肩上がりで増えているSQLがないか AWR Report SQL ordered by Gets CPU時間の長いSQL(総計/1回当り) ・時系列で右肩上がりで増えているSQLがないか AWR Report SQL ordered by CPU Time クラスタ待機時間の長いSQL(総計/1回当り) ・時系列で右肩上がりで増えているSQLがないか AWR Report SQL ordered by Cluster Wait Time 共有メモリ使用量の多いSQL ・共有メモリ使用量が 100MBを超えているSQLがないか AWR Report SQL ordered by Sharable Memory Version Count の多いSQL ・時系列で右肩上がりで増えているSQLがないか AWR Report SQL ordered by Version Count 実行時間の長いSQL(総計/1回当り) ・elapsed が undo_retention を超えてい るSQLがないか AWR Report SQL ordered by Elapsed Time 合計と1回当りの両方で分析すると、一発で重い のか、塵も積もればで上位なのかわかりやすい
43 Exadata X5 からCellサーバのOS性能統計がAWRに •AWRレポートに CellサーバのCPU使用率やI/OなどのOS性能統計、SmartScanなどの統計が レポートされるようになった Oracle Exadata Storage Server Software Performance Statistics in AWR Reports Exadata Storage Server configuration and performance statistics are collected in the Automatic Workload Repository (AWR), and the data is available in the AWR report. The Oracle Exadata section of the AWR report is available in HTML or active report format. The following sections are three main sections in the AWR report: • Exadata Server Configuration: Hardware model information, software versions, and storage configuration • Exadata Server Health Report: Offline disks and open alerts • Exadata Performance Statistics: Operating system statistics, storage server software statistics, smart scan statistics, and statistics by databases The AWR report provides storage level performance statistics, not restricted to a specific instance or a database. This is useful for analyzing cases where one database can affect the performance of another database. Oracle Exadata Database Machine System Overview 12c Release 1 (12.1) E51953-17 http://docs.oracle.com/cd/E50790_01/doc/doc.121/e51953/app_whatsnew.htm#DBMSO21849
46 DB Time <CPU Time + Wait Time • db file sequential read などのI/Oシステコールは発行してから返ってくるまでの時間のた め、待機時間にカーネルモードでのCPU時間が含まれる • CPU時間は db file sequential read などの待機時間と、CPU Time にダブルカウントされる 通常、極めて短時間のた め目立つことはない 出典:https://www.slideshare.net/jberesni/awr1page-sanity-checking-time-instrumentation-in-awr-reports
47.
47 DB Time >CPU Time + Wait Time • AIX on POWER ではCPU時間をOSから見て ON CPU の時間ではなく、SMT でCPU内で使用し た時間を算出し、ソフトウェアから見て CPU Time が実際より短く計上されるケースがある • 詳しくは以下参照 http://oracleprof.blogspot.jp/2013/02/oracle-on-aix-wheres-my-cpu-time.html 出典:https://www.slideshare.net/jberesni/awr1page-sanity-checking-time-instrumentation-in-awr-reports