ttStatsユーティリティの使用方法
ttStatsユーティリティを使用すると、データベース・メトリック(統計や状態などの情報)をモニターして、システム・スナップショットを自動的に取得して、メトリックのスナップショットを取得して比較できます。ttStatsユーティリティでは、次の機能を実行できます。
-
パフォーマンス・メトリックをリアルタイムでモニタリングおよび表示し、前のインターバルからの変化率を計算する。
データベースのレポートをモニタリングおよび分析すると、グリッドの全体的なパフォーマンスの判定に役立ちます。データベースの全体的なパフォーマンスを把握することで、データベースを最適な状態で稼働させるための予防措置を講じることができます。
TimesTen ClassicとTimesTen Scaleoutでは、ttStatsの動作にいくつかの違いがあります。詳細は、『Oracle TimesTen In-Memory Databaseリファレンス』のttStatsに関する項を参照してください。TT_STATS PL/SQLパッケージの詳細は、『Oracle TimesTen In-Memory Database PL/SQLパッケージ・リファレンス』のTT_STATSを参照してください。
次のトピックでは、ttStatsユーティリティの使用方法について説明します。
ttStatsユーティリティの構成の表示
ttStatsConfigGet組込みプロシージャを使用して、ttStatsユーティリティの構成設定を表示できます。この組込みプロシージャを実行すると、ttStatsユーティリティの収集設定を設定するpollSec、retentionDaysおよびretainMinutesというパラメータの値が表示されます。
次の例では、ttStatsユーティリティの収集設定を示しています。
Command> call ttStatsConfigGet();
< POLLSEC, 30 >
< RETENTIONDAYS, 62 >
< RETAINMINUTES, 120 >
3 rows found.TimesTen ScaleoutのみでサポートされているpollSec、retentionDaysおよびretainMinutesの各パラメータを使用して、TimesTen Scaleoutの統計情報のポーリング間隔、集計データのパージ時間、およびRAWデータのパージ時間をそれぞれ設定できます。ポーリング間隔のパラメータであるpollsecは、ttStatsデーモンがデータベースのメトリックを収集する間隔(秒単位)を指定します。
ポーリング間隔の値は、データベースのパフォーマンスに影響を与えません。ただし、10秒というポーリング間隔を指定した場合は、通常、60秒のポーリング間隔の場合と比べて領域の使用量が6分の1になります。ほとんどのメトリックは集計され、各要素上のPermSize領域の約6MB (場合によっては最大10年分のメトリック)を使用します。ただし、ログ保持、上位SQLコマンド、チェックポイント履歴などの一部のメトリックは集計できません。ttStats -snapshotInfoユーティリティを使用して、該当するメトリックに使用されているPermSize領域の量を確認できます。
ttStatsConfigGet組込みプロシージャおよびttStatsユーティリティの詳細は、それぞれ『Oracle TimesTen In-Memory Databaseリファレンス』のttStatsConfigGetおよびttStatsを参照してください。
ttStatsユーティリティの構成
ttStatsConfig組込みプロシージャは、ttStatsユーティリティの構成設定を制御するとともに、ttStatsによってシステム・スナップショットが自動的に取得されるタイミングを制御します。ttStatsConfig組込みプロシージャを呼び出して、ttStatsユーティリティに影響を与える統計収集パラメータを変更します。ttStatsConfig組込みプロシージャのパラメータ、およびSYS.V$STATS_CONFIGシステム・ビューの詳細は、それぞれ、『Oracle TimesTen In-Memory Databaseリファレンス』のttStatsConfig、および『Oracle TimesTen In-Memory Databaseシステム表およびビュー・リファレンス』のSYS.V$STATS_CONFIGを参照してください。
ポーリング間隔のパラメータであるpollsecは、ttStatsデーモンがデータベースのメトリックを収集する間隔(秒単位)を指定します。
次の例では、TimesTen Scaleoutの統計のポーリング間隔の現在値を返しています。
SQL> SELECT VALUE FROM SYS.V$STATS_CONFIG WHERE PARAM='POLLSEC';
< 30 >
1 row found.次の例では、TimesTen Scaleoutの統計のポーリング間隔を45秒に設定しています。
Command> call ttStatsConfig('pollsec', 45);
< POLLSEC, 45 >
1 row found.保存時間間隔のパラメータであるretentionDaysは、ttStatsデーモンがデータベースのメトリックを削除する間隔(日単位)を指定します。たとえば、保存時間間隔が62日である場合、ttStatsデーモンは1日目のスナップショットを63日目に削除します。PermSizeの値によって、必要とする保存時間間隔が十分サポートされることを確認してください。
次の例では、TimesTen Scaleoutの統計の保存時間間隔の現在値を返しています。
SQL> SELECT VALUE FROM SYS.V$STATS_CONFIG WHERE PARAM='RETENTIONDAYS';
< 62 >
1 row found.次の例では、TimesTen Scaleoutの統計の保存時間間隔を30日間に設定しています。
Command> call ttStatsConfig('retentionDays', 30);
< RETENTIONDAYS, 30 >
1 row found.パージ時間間隔のパラメータであるretainMinutesは、ttStatsデーモンがデータベースのRAWメトリックをパージする間隔(分単位)を指定します。たとえば、保存時間間隔が120分である場合、ttStatsデーモンは120分ごとにRAWメトリックをパージします。
次の例では、TimesTen Scaleoutの統計のパージ時間間隔の現在値を返しています。
SELECT VALUE FROM SYS.V$STATS_CONFIG WHERE PARAM='RETAINMINUTES';
< 120 >
1 row found.次の例では、TimesTen Scaleoutの統計のパージ時間間隔を60分に設定しています。
Command> call ttStatsConfig('retainMinutes', 60);
< RETAINMINUTES, 60 >
1 row found.ttStatsユーティリティを使用したデータベースのモニター
ttStats -monitorユーティリティを使用して、ローカル・インスタンス上のデータベース・ワークロードをリアルタイムでモニターします。-durationまたは-iterationsオプションを指定することで、ttStatsユーティリティがTimesTen Scaleoutをモニターする時間の長さを設定できます。モニタリングは、-durationか-iterationsオプションで指定した制限時間に達するまで、または[Ctrl]+[C]を押すまで続行されます。時間間隔のオプションである-intervalを指定して、表示されるメトリックのセット間の時間間隔(秒単位)を設定することもできます。これらのオプションは同時に指定できます。次のオプションを指定できます。
-
-duration: このオプションは、ttStatsユーティリティを実行する時間の長さ(秒単位)を設定します。この継続時間後に、ユーティリティは終了します。次の例では、データベースを60秒間モニターします。
% ttStats -monitor -duration 60 database1 Connected to TimesTen Version 22.01.0001.0027 Oracle TimesTen IMDB version 22.1.1.27.0. Waiting for 10 seconds for the next snapshot Description Current Rate/Sec Notes date.2017-Feb-22 11:33:41 1456169621 1 sample #, not rate cmdcache.id:278352904.preps 142072 1 COMMIT cmdcache.id:283596680.execs 135242 1 SELECT COUNT(*) FROM SYS.TTSTATS cmdcache.id:283613080.execs 340200 3 SELECT COUNT(*) FROM SYS.TTSTATS cmdcache.id:283619720.execs 135242 1 INSERT INTO SYS.TTSTATS_SQL_COMM connections.count 15 db.joins.nested_loop 22874 1 db.table.full_scans 136618 2 lock.locks_granted.immediate 24138575 291 log.buffer.bytes_inserted 4887634664 52988 log.buffer.insertions 41123321 447 log.file.writes 247855 2 log.forces 183285 1 log.log_bytes_per_transaction 0 loghold.bookmark.log_force_lsn 88/46899200 loghold.bookmark.log_write_lsn 88/46899464 loghold.checkpoint_hold_lsn 88/41543680 database1.ds0 loghold.checkpoint_hold_lsn 88/33990656 database1.ds1 plsql.GetHitRatio 0.714 0.000 plsql.GetHits 380.000 0.200 plsql.Gets 532.000 0.200 plsql.PinHitRatio 0.989 0.000 plsql.PinHits 34556.000 0.500 plsql.Pins 34933.000 0.500 stmt.executes.count 1103839 12 stmt.executes.inserts 280246 2 stmt.executes.selects 777408 9 stmt.prepares.count 173038 1 txn.commits.count 233082 2 txn.commits.durable 182275 1 ... -
-iterations: このオプションは、ttStatsユーティリティがメトリックを収集および表示するときの反復実行回数を設定します。これらの回数の反復後に、ユーティリティは終了します。次の例では、反復回数を3に設定しています。
% ttStats -monitor -iterations 3 database1 Connected to TimesTen Version 22.01.0001.0027 Oracle TimesTen IMDB version 22.1.1.27.0. Waiting for 10 seconds for the next snapshot Description Current Rate/Sec Notes date.2017-Feb-22 11:54:34 1456170874 1 sample #, not rate connections.count 15 lock.locks_granted.immediate 24195281 1 log.log_bytes_per_transaction 0 loghold.bookmark.log_force_lsn 88/61253632 loghold.bookmark.log_write_lsn 88/61253896 loghold.checkpoint_hold_lsn 88/55470080 database1.ds0 loghold.checkpoint_hold_lsn 88/48414720 database1.ds1 plsql.GetHitRatio 0.730 0.000 plsql.GetHits 410.000 0.200 plsql.Gets 562.000 0.200 plsql.PinHitRatio 0.989 0.000 plsql.PinHits 34667.000 0.200 plsql.Pins 35044.000 0.200 stmt.executes.count 1106494 1 stmt.executes.selects 779348 1 ... -
-interval: このオプションは、表示されるメトリックのセット間の時間間隔(秒単位)を設定します。次の例では、間隔時間を30秒に設定しています。
% ttStats -interval 30 -monitor database1 Connected to TimesTen Version 22.01.0001.0027 Oracle TimesTen IMDB version 22.1.1.27.0. Waiting for 30 seconds for the next snapshot Description Current Rate/Sec Notes date.2017-Feb-19 15:18:38 1455923918 1 sample #, not rate connections.count 15 lock.locks_granted.immediate 12536701 1 log.log_bytes_per_transaction 0 loghold.bookmark.log_force_lsn 45/13309952 loghold.bookmark.log_write_lsn 45/13310216 loghold.checkpoint_hold_lsn 45/4683776 database1.ds0 loghold.checkpoint_hold_lsn 45/11804672 database1.ds1 plsql.GetHitRatio 0.700 0.000 plsql.GetHits 355.000 0.067 plsql.Gets 507.000 0.067 plsql.PinHitRatio 0.980 0.000 plsql.PinHits 18201.000 0.067 plsql.Pins 18578.000 0.067 ...
ttStatsユーティリティを使用したスナップショットの作成
ttStats -snapshotユーティリティを使用して、システムによって生成された最新のデータベース・スナップショットに任意のスナップショットIDを関連付けます。スナップショットは、データベースのメトリックを示すレポートを作成するために使用されます。システムによって生成されたスナップショットが自動的にパージされると、関連付けられたユーザー・スナップショットもパージされます。
次の例では、ttStats -snapshotユーティリティを使用してスナップショットを作成しています。-snapshotコマンドを使用するときには、-descriptionコマンドが必要になります。-descriptionコマンドを使用すると、たとえば他のスナップショットと区別するために、そのスナップショットの説明やノートを指定できます。
% ttStats -snapshot -description 1 database1
Connected to TimesTen Version 22.01.0001.0027 Oracle TimesTen IMDB version 22.1.1.27.0.
Snapshot ID was 88412この例で作成されたスナップショットは、1というスナップショットIDを使用して参照できます。
ttStatsユーティリティを使用した2つのスナップショット間のレポートの作成
ttStats -reportユーティリティを使用して、TimesTen Scaleoutデータベースの2スナップショット間のレポートを作成します。ttStatsのレポートでは、データベースの2のスナップショット間の統計の変化が示されます。-outputFileオプションを使用すると、レポートの書込み先となるファイルのパスと名前を指定できます。次のいずれかのオプションのセットを使用して、レポートの開始ポイントと終了ポイントを定義します。
-
スナップショットIDを指定する、
-snap1および-snap2の各オプション。レポート期間は、少なくとも4つの既存スナップショットID値にまたがっている必要があります。したがって、-snap1と-snap2の間に少なくとも3つのスナップショットが必要です。 -
タイムスタンプを指定する、
-timestamp1および-timestamp2の各オプション。
ttStats -snapshotInfo コマンドを使用して、使用可能なデータベース・スナップショットを表示できます。
次の例では、ttStats -snapshotInfoユーティリティを使用して、使用可能なスナップショットのIDおよびタイムスタンプを返しています。このコマンドは、集計されたスナップショットとttStatsConfig組込みプロシージャの値に関する情報も返します。
% ttStats -snapshotInfo database1
Connected to TimesTen Version 22.01.0001.0027 Oracle TimesTen IMDB version 22.1.1.27.0.
There are 2 user snapshots:
Snapshot ID User comment When snapshot occurred
============ ================ ======================
88412 1 2018-02-09 13:28:50
88412 2 2018-02-10 11:13:55
88412 3 2018-02-10 18:39:50
88412 4 2018-02-11 08:10:12
88412 5 2018-02-12 17:23:46
There are 151 AGGREGATED snapshots:
Oldest snapshot 2880, 2018-01-04 15:37:29
Newest snapshot 88412, 2018-02-03 10:00:26
There are 240 NON AGGREGATED snapshots:
Oldest snapshot 88173, 2018-02-03 08:00:42
Newest snapshot 88412, 2018-02-03 10:00:26
There are about 16.3 MB of metrics stored in ttStats SYS tables
The PollSec was 30
The RetentionDays was 62
The RetainMinutes was 120次の例では、ID 1とID 5のスナップショットの間のレポート(snapreport.txt)を作成しています。
% ttStats -report -snap1 1 -snap2 5 -outputFile snapreport.txt database1
Connected to TimesTen Version 22.01.0001.0027 Oracle TimesTen IMDB version 22.1.1.27.0.
Report snapreport.txt was created.次の例では、2つのタイムスタンプ間のレポート(timereport.txt)を作成しています。
% ttStats -report -timestamp1 2018-02-22 12:50:31 -timestamp2 2018-02-23 09:15:23 -outputFile snapreport.txt database1
Connected to TimesTen Version 22.01.0001.0027 Oracle TimesTen IMDB version 22.1.1.27.0.
Report timereport.txt was created.ttStatsレポートによって生成されるメトリックの表の詳細、およびttStatsユーティリティの詳細は、『Oracle TimesTen In-Memory Databaseリファレンス』のTimesTen ScaleoutのttStatsを参照してください。