SAP HANA コックピットを使用した監視

メモリ使用量のチェック

Objective

After completing this lesson, you will be able to SAP HANA システムのメモリ使用を確認します。

Memory Usage

物理メモリとは、ホストにインストールされた DRAM メモリです。ほとんどの SAP HANA ホストにおいて、その容量は 256 ギガバイト (GB) から 4 テラバイト (TB) の範囲となります。インメモリデータベースの 1 つである SAP HANA にとって、この重要なリソースの消費量を慎重に管理しトラッキングすることが重要です。したがって、すべての SAP HANA サーバにはメモリマネージャが付属しています。これにより、独自のメモリプールを設定可能な割当限度まで事前割当して管理することができます。このプールは、テーブルの保存、スレッドのスタックのほか、一時的な計算、中間結果、その他のデータ構造のために使用されます。プールに加えて、SAP HANA プロセスの (排他および共有) プログラムコードおよびスタックにメインメモリが使用されます。

Linux オペレーティングシステムの観点から見ると、SAP HANA は個別のプロセスの集合です。Linux プログラムは、使用するメモリを Linux オペレーティングシステムから要求して予約します。プログラムの予約済メモリフットプリント全体は、仮想メモリと呼ばれます。各 Linux プロセスには独自の仮想メモリがあります。このプロセスがオペレーティングシステムからより多くのメモリを要求すると仮想メモリは大きくなり、プロセスが未使用のメモリを解放すると仮想メモリは縮小します。SAP HANA では、仮想メモリのうち、コード、スタック、テーブル、中間結果のために現在使用されている部分を示すのに、使用メモリという用語が使用されます。SAP HANA のすべてのプロセスを全体的に表すため、図 "SAP HANA メモリプール: 使用メモリと仮想メモリ" で、SAP HANA の仮想メモリと使用メモリを示します。

この図は、メモリプール、データベース管理、使用中のデータを含む SAP HANA のメモリ構造を示しています。

インメモリデータベースの 1 つである SAP HANA にとって、そのメモリ消費量を慎重に管理しトラッキングすることは非常に重要です。このため、SAP HANA データベースは、自らのデータのメモリプールを事前に割り当て、管理を行います。このメモリプールは、インメモリテーブルの保存、スレッドのスタック、一時的な計算、中間結果、その他のデータ構造のために使用されます。したがって、SAP HANA が使用するメモリには、SAP HANA のプログラムコード (排他的および共有)、プログラムスタック、およびすべてのデータテーブル (ローとカラム) と、システムテーブルと、登録済テーブルとを含むメモリプールが含まれます。

プールの一部は、常に一時的な計算に使用されます。使用中のメモリの総容量のことを、使用メモリと呼びます。これは、SAP HANA データベースが使用するメモリの量を示すもっとも正確なインジケータです。

仮想メモリ、物理メモリ、常駐メモリ

Linux によって、ホストの物理メモリに対する仮想メモリのマッピングが管理されます。物理メモリの中で仮想メモリの部分は、常駐メモリと呼ばれます。常駐メモリとは、あるプロセスによって使用されている物理メモリのことです。

時間の経過とともに、オペレーティングシステムによって、LRU (最低使用頻度) アルゴリズムに従ってプロセスの常駐メモリの一部が "入れ替え" られ、他のコードやデータ用の領域が確保されます。したがって、プロセスの常駐メモリサイズは、仮想メモリサイズに関係なく変動する可能性があります。適正なサイズの SAP HANA アプライアンスには十分な物理メモリがあるため、入替が無効化されており、実行は不要です。

テーブル拡大や一時的な計算のためにメモリが必要になった際には、SAP HANA が既存のメモリプールからメモリを取得します。プールで要求に対応できない場合、SAP HANA メモリマネージャは、オペレーティングシステムからより多くのメモリを要求して予約します。結果として、HANA プロセスの仮想メモリサイズは増加します。一時的な計算が完了したり、テーブルが削除されたりすると、解放されたメモリはメモリマネージャに返され、Linux に通知されることなくプールに再利用されます。つまり、SAP HANA の観点からすると使用メモリは縮小していますが、プロセスの仮想サイズと常駐サイズに影響はありません。これにより、使用メモリが SAP HANA の常駐メモリのサイズを下回るという状況が起こりますが、これはまったく正常な状態です。

この図は、ラベル付きセグメントを使用したシステムでの物理メモリと常駐メモリの分割を示しています。

一般的な SAP HANA アプライアンスでは、通常、OS の常駐部分およびその他すべての実行中プロセスが 2 GB を超えることはありません。残りの物理メモリは、SAP HANA の使用に利用できます。

メモリ消費

図 "メモリ消費" は、ホストの物理メモリ、Linux の仮想メモリと常駐メモリ、および SAP HANA のメモリプールと使用メモリインジケータの関係を示しています。使用メモリの変更が、プロセスの仮想サイズおよび常駐サイズに影響を与えないことに注意してください。

SAP HANA データベースでは、複数のプロセスにわたって、実際の使用の前にメモリのプールを予約します。この割当メモリのプールは、事前に定義されたグローバル割当限度まで、時間の経過とともにオペレーティングシステムから事前に割り当てられます。その後、SAP HANA データベースコードによって必要に応じて効率的に使用されます。

この図は、Linux メモリ管理を示しており、物理メモリ、仮想メモリ、常駐メモリ、使用メモリ、および空きメモリが時間の経過とともに示されます。

Linux メモリインジケータ

オペレーティングシステムは SAP HANA をプロセスの集合として扱うため、これらのプロセスの仮想部分と常駐部分の両方を考慮する必要があります。プロセスの仮想メモリサイズは、常駐サイズよりも常に大きくなります。また、管理対象のメモリプールにより、SAP HANA 仮想サイズと常駐サイズの両方が、想定される使用メモリ区分よりも大きく表示される場合があることにも注意してください。これはまったく正常な状態です。

Linux は、仮想および常駐プロセスサイズの最高水準点 (ピーク) 区分を維持しています。安定したシステムでは、現在の仮想サイズおよび常駐サイズは、それぞれの最高水準点よりもわずかに小さくなります。これは、SAP HANA ではプールが増加しても、通常は未使用メモリが解放されないためです。したがって、常駐サイズの最高水準点は、通常、ピーク時使用メモリをトラッキングする必要があります。非常に大きな差異がある場合は、物理メモリが不足しているために、SAP HANA メモリプールの一部が解放されたことを示している可能性があります。

SAP HANA コックピットでのメモリ消費の監視

SAP HANA コックピットで Used Memory カードを選択すると、Performance Monitor アプリが開き、使用メモリ、データベース使用メモリ、割当限度、負荷グラフなどのホストおよびサービス固有のメモリ KPI が表示されます。負荷グラフでは、最初に、コーディネータホストとコーディネータインデックスサーバにおけるメモリ使用が視覚化されます。これは、必要に応じてカスタマイズできます。

この図は、コンピューティングシステムのパフォーマンスメトリック、帯域幅、およびしきい値分析を含むメモリ使用モニタを示しています。

パフォーマンスモニタ

この図は、ビュー、期間選択、ズーム、およびデータ分析の機能を含む詳細なパフォーマンス監視ダッシュボードを示しています。

長期にわたる SAP HANA データベースのパフォーマンス分析は、ボトルネックの特定、パターンの識別、および要件の予測に役立ちます。Performance Monitor アプリケーションを使用すると、メモリ、ディスク、CPU 使用率に関連するさまざまな主要パフォーマンス指標にわたって過去のパフォーマンスデータを視覚的に分析できます。

Performance Monitor を開くと、選択したリソース (CPU、ディスク、またはメモリ) の負荷グラフが表示されます。負荷グラフの初期の状態では、選択したリソースのデフォルト KPI グループに従って、左側に一覧表示されているすべてのホストおよびサービスのリソース使用が視覚化されています。

(1) 調査する監視時間枠を設定します。独自の時間枠を設定するか、Presetsメニューから選択することができます。

(2)リフレッシュレートドロップダウンリストでは、自動画面リフレッシュレートを設定することができます。更新レートは、2 秒から 10 分の間で設定できます。

(3)Add Chartボタンを使用すると、ホストとサービス選択、および選択した KPI を表示するカスタムチャートを登録することができます。使用可能なすべての KPI の一覧から新規 KPI を選択します。

(4) 負荷グラフで目的の選択に直接ブラッシュして、グラフ上の特定の時間をズームします。強調表示された領域が下のチャートセクションに自動的に拡大されます。強調表示された領域を上チャートの別の時間範囲にドラッグ & ドロップして、移動します。下のチャートセクションは、選択内容に従います。再度縮小するには、上のチャートで別のスポットを選択します。Performance Comparisonページを使用して、選択した KPI のパフォーマンスを異なるタイミングで比較することもできます。

注記

また、専用の時間範囲をマークし、強調表示されたセクションの右上隅にあるZoom into selected time rangeボタンを選択して、下位チャートの領域を拡大することもできます。ヘッダツールバーの Undo ボタンを選択すると、再度縮小できます。

テーブル使用の監視

この図は、監視ダッシュボードでの SAP HANA データベーステーブルの使用 (フィルタ、メトリック、ビジュアル化など) を示しています。

Table Usage 画面で、テーブルのリソース使用量を監視することができます。テーブルをサイズ別に視覚化し、テーブルの使用履歴を調べることができます。

テーブル操作を監視して、パフォーマンスを改善できる箇所を特定し、メモリ使用量を削減します。

Filter Tables (1) では、テーブルへのアクセス回数とテーブルサイズでフィルタリングすることができます。また、一覧に表示するテーブルの数を指定することもできます。

bubble-chart ボタンと table-chart ボタン (2) を使用すると、グラフィックビューと一覧ビューを切り替えることができます。