CPU利用状況のモニター - Teradata Database - Teradata Vantage NewSQL Engine

Teradata Vantage™ - データベースの管理

Product
Teradata Database
Teradata Vantage NewSQL Engine
Release Number
16.20
Published
2019年3月
Language
日本語
Last Update
2019-10-29
dita:mapPath
ja-JP/tgx1512080410608.ditamap
dita:ditavalPath
ja-JP/tgx1512080410608.ditaval
dita:id
B035-1093
Product Category
Software
Teradata Vantage

Teradata Databaseは、正規化されたCPU測定と未加工のCPU測定の両方を記録します。正規化されたCPU時間は、CPUの倍率をノード レベルの未加工のCPU時間に適用することによって得られます。

すべてのノード タイプに対する標準の共存倍率は、Open PDE startup.txtファイルのPDE始動パラメータで定義済みです。ノードごとの値は、他のコンポーネントが使用できるように、PDE始動によってvconfigおよびtosgetpma()構造に追加されます。このようにして、Teradata Databaseは複合ノード システムの正確な性能統計、特にCPUスキューおよび容量計画、つまり使用可能な容量に関する性能統計を提供します。

式は次のようになります。

Node_Scaling_Factor * Node_CPU_Time

スケール係数値は以下から取得されます。
  • I/Oまたは環境によって制限されていないTeradataコンピュータ ノードの未加工の容量を測定する。
  • 値を、データ アクセスの頻度、データ ロードの頻度、行処理の頻度、未加工のトランザクション頻度などの基本的な機能に基づかせる。

    現在、5100が基本的な倍数値になります(1.00)。

DBQLおよびAMPUsageのAMPレベルのレポートでは、式は次のようになります。

Node_Scaling_Factor * AMP_CPU_Time

ResUsageとDBC.AMPUsageビュー

DBC.AMPUsageビューは、ResUsageデータでの情報の表示方法とは異なる方法でCPUの使用情報を表示します。

機能 表示内容
ResUsage システム数値。個々のユーザーまたはアカウントIDが区別されない。
DBC.AMPUsageビュー 個々のユーザーまたはアカウントID別のAMP使用。

AMPUsageは論理I/O(物理I/Oではない)の数を測定します。

システムで使用されたCPU秒数の一部は、AMPUsageの対象となりません。そのため、ResUsageのCPUの値は常にAMPUsageの値よりも大きくなります。一般に、AMPUsageで収集されるCPU時間はResUsageの70~90%です。

DBC.AMPUsageビューについての詳細は、<Teradata Vantage™ データ ディクショナリ、B035-1092>を参照してください。

ResNodeマクロ セットの使用

一般的に、容量計画には、ResUsageSpmaのみが必要です。このテーブルだけが、ResNodeマクロ セットを利用するために必要です。

ResNodeの重要な情報には以下のものがあります。
  • CPU使用
  • ホット ノードまたはAMPを示す並列の効率
  • 入出力に対するCPUの均衡
  • ワークロードの特性を確かめるためのOS使用率とDBS使用率の比較
  • メモリ使用率
  • 可用性とプロセスのスワッピング(ページング)
  • ネットワーク トラフィック

傾向の確認

傾向の確認においてResUsageデータが最も役に立つのは、比較に使用するのに適度な長さの履歴(1年以上のもの)がある場合です。そのデータを使って、以下のような設問に答えます。
  • 1日または1週間のうちの様々な時点でシステムがどのくらいの率で使用されているか。
  • 使用中のピークまたは利用可能サイクルはいつ生じるか。

CPU Busy

ResNodeマクロはCPU busyを平均秒数でレポートします。この情報はシステム全体の分析に使用できます。

マクロには、すべてのノードにおける平均CPU使用率であるAvg CPU Busy列が含まれます。Avg CPU Busy %は、ノード内の複数のCPUが長期にわたってどのくらいの頻度で使用されたかの計測値です。
  • DSS環境では、ジョブ数が少なくてもCPUは簡単に100 %の使用率に近づくことがあります。
  • 高CPU使用とは、かなりの期間にわたってAvg CPU Busy %が70%超であることを指します。
  • DSS環境とトランザクション処理環境ではCPUの需要は異なった形態をとります。

ResNode列については、<Teradata Vantage™リソース使用状況マクロとテーブル、B035-1099>を参照してください。

DSS環境のCPUタスク

以下は、DSS操作時にノードでどのようにCPUタスクが実行されるかを示しています。

  1. 読み取りの準備:
    • メモリ管理がデータ ブロック用のメモリを割り当てます。
    • データベース ソフトウェアからファイル システムに通信します。
    • ファイル システムからディスク コントローラーに通信します。
  2. 行を選定します。行がWHERE句条件を満たすかどうかを確かめます。

    大部分のDSS操作ではフル テーブル スキャンが必要です。その場合、WHERE句条件の確認に比較的時間がかかります。一般的にフル テーブル スキャンは、インデックスやパーティションを除外する値をWHERE句で指定していないSQL文が原因で行なわれます。

  3. 行の処理:
    • 結合
    • ソート
    • 集約
  4. 該当する行をスプール出力用にフォーマットします。

トランザクションとバッチ保守処理中のCPUタスク

以下は、トランザクション バッチ保守処理においてノードでどのようにCPUタスクが実行されるかを示しています。

テーブルには修飾行アクティビティが欠落していることに注意する必要があります。トランザクション処理では、PIまたはUSIの値がWHERE句に指定されるのが一般的です。読み取りそのものが行を修飾します。通常、トランザクション処理では、非インデックス列に照らし合わせた追加の条件検査は行なわれません。これらのCPUタスクはすべて、ノード上で行なわれます。

  1. 読み取りの準備:
    • メモリ管理がデータ ブロック用のメモリを割り当てます。
    • データベースからファイル システムへ通信します。
    • ファイル システムからディスク コントローラーに通信します。
  2. 行の更新:
    • データベースが、更新しようとする行を見つけ出します。
    • メモリ管理が、作成しようとする新規データ ブロック用のメモリを割り振ります。
    • データベースは、変更後の行を更新し、古い行をコピーします。
    • データベースからファイル システムへ通信します。
    • ファイル システムからディスク コントローラーに通信します。

並列ノードの効率

並列ノードの効率は、それぞれのノードによってワークロードがどのくらい均一に分担されているかの指標になります。それぞれのノードが等しく利用されればされるほど、並列性の効率は上がります。

並列ノードの効率性は、平均ノード使用率を最大ノード使用率で割って計算されます。並列ノードの効率では、ワークロードの大きさは考慮に入れられません。この場合には、ワークロードがどのくらい均一に各ノードで分担されているかだけが調べられます。

並列ノードの効率が100%に近ければ近いほど、それぞれのノードがうまく共同稼働していることになります。このパーセンテージが100%を下回るということは、その時間帯における一部のノードの稼動量が他のノードの稼動量よりも高いということを意味します。ノードの並列性効率が10分間にわたって60%を下回る状態が1回または2回以上発生する場合には、Teradata Databaseの並列性アーキテクチャは最大限の性能を達成していないことになります。

劣化した並列性の効率

ノードの並列性効率が低いことの原因としては、以下のものが考えられます。
  • ノードが停止している
  • ノードあたりのAMP数が不均等である。
  • スキューのあるテーブルが配布された。
  • スキューのある結合または集合処理が行なわれた。
  • TPAノードでTeradata Database以外のアプリケーションが実行されている。
  • システムに別々の速度のノードが共存している。
不適正な並列性効率は、AMPレベルでも起きる可能性があります。AMP並列性効率が低い場合、一般的に以下のような原因が考えられます。
  • テーブル配布が不適切である(これについてはDBC.TableSizeVで調べることができます)。
  • SQL文の処理でスキューが生じた。
    • ユーザーのCPU秒数(これについてはDBC.AMPusageで調べることができます)。
    • スプール(これについてはDBC.DiskspaceVで調べることができます)。

CPU使用

以下のマクロは、CPU使用に関する情報を示します。

マクロ テーブル 目的
ResCPUByNode SPMA 個々のノードでのCPUの使用率をレポートします。
ResCPUByPE SVPR ノードに関係なく、各パーシング エンジン(PE)によるCPUの使用率のレポート。
ResCPUByAMP SVPR それぞれのノードでの各AMPによるCPUの使用率のレポート。

これらのマクロについては、<Teradata Vantage™リソース使用状況マクロとテーブル、B035-1099>を参照してください。