ストリームデータ処理基盤 uCosminexus Stream Data Platform - Application Framework システム構築・運用ガイド
ここでは,ストリームデータ処理エンジンに関するメモリ使用量の見積もり方法について説明します。
ストリームデータ処理エンジンに関するメモリ使用量は,SDPサーバ用定義ファイルのSDPサーバ用JavaVMオプションファイル(jvm_options.cfg)の次の表に示すパラメーターで指定します。
表2-8 ストリームデータ処理エンジンに関するメモリ使用量を指定するパラメーター
項番 | パラメーター | 説明 |
---|---|---|
1 | SDP_INITIAL_MEM_SIZE | Javaヒープの初期サイズを設定します。デフォルト値は,512メガバイトです。 |
2 | SDP_MAX_MEM_SIZE | Javaヒープの最大サイズを設定します。デフォルト値は,1,024メガバイトです。 |
デフォルト値ではメモリ使用量が不足する場合には,各パラメーターの値を変更してください。ストリームデータの処理には,以降で説明するストリームデータ処理エンジンに関するメモリ使用量が固定で必要となります。ガーベージコレクションの発生を低減させるため,ここで計算した値を基に,各パラメーターに余裕のある値を指定してください。
SDPサーバ用JavaVMオプションファイルのパラメーターについては,「8.4 SDPサーバ用JavaVMオプションファイル(jvm_options.cfg)」を参照してください。
ストリームデータ処理エンジンに関するメモリ使用量について,項目ごとに説明します。
SDPサーバの実行に必要なメモリ使用量は,145メガバイトです。
タプル一つ当たりに必要なメモリ使用量は,タプル一つ当たりのサイズで決まります。タプル一つ当たりのサイズは,次に示す計算式で求められます。
タプル一つ当たりのサイズ(単位:バイト)= 500※+ユーザー定義データ領域サイズ
計算式中の「ユーザー定義データ領域サイズ」は,ユーザーがCQLのスキーマで定義したデータ型とその数によって決まります。ユーザー定義データ領域サイズは,次に示す計算式で求められます。
ユーザー定義データ領域サイズ(単位:バイト)= (256※×ユーザー定義データ数)+(文字列データで定義した文字列長×2)
ウィンドウ演算に使用するウィンドウのサイズが大きくなるほど,SDPサーバ内に保持するタプルも増えるため,タプルの保持に必要なメモリ使用量が増加します。ウィンドウのサイズは,タプルの数(ROWSウィンドウ),または時間(RANGEウィンドウ)で指定します。
ウィンドウ演算を使用する場合のメモリ使用量は,次の計算式で求められます。なお,RANGEウィンドウの場合は,時刻解像度を指定するかどうかで計算式が異なります。
ROWSウィンドウの場合 メモリ使用量(単位:バイト)= A×ROWSウィンドウで指定したタプルの数 +50,000※ RANGEウィンドウの場合(時刻解像度を指定しないとき) メモリ使用量(単位:バイト)= A×RANGEウィンドウで指定した時間 ×単位時間当たりのタプルの入力数+50,000※ RANGEウィンドウの場合(時刻解像度を指定するとき) メモリ使用量(単位:バイト)= A×RANGEウィンドウで指定した時間 ÷時刻解像度で指定したメッシュ間隔 ×メッシュ間隔当たりのタプル入力数+50,000※
時刻解像度の指定は,データの入力頻度を予測することが困難な場合や,メモリ使用量を一定量に抑えたい場合に有効です。ただし,時刻解像度の指定には,前提条件や制約があるため注意してください。時刻解像度の指定については,マニュアル「uCosminexus Stream Data Platform - Application Framework アプリケーション開発ガイド」を参照してください。
SDPサーバ用定義ファイルのシステムコンフィグプロパティファイル(system_config.properties)のengine.maxQueueSizeパラメーターで,ストリームキューの要素数の上限値を変更できます。要素数の上限値を変更すると,ストリームキューのメモリ使用量に影響します。要素数の上限値を変更する場合の,ストリームキュー一つ当たりのメモリ使用量は,次に示す計算式で求められます。
ストリームキュー一つ当たりのメモリ使用量(単位:バイト)=A×B
システムコンフィグプロパティファイルのパラメーターについては,「8.6 システムコンフィグプロパティファイル(system_config.properties)」を参照してください。
SDPサーバ用定義ファイルのシステムコンフィグプロパティファイル(system_config.properties)の次に示すパラメーターで,APIトレースのバッファーの内容を変更できます。
これらのパラメーターのうち,どれか一つでも値を変更すると,APIトレースのメモリ使用量に影響します。APIトレースのバッファーの内容を変更する場合の,APIトレースのメモリ使用量は,次に示す計算式で求められます。
APIトレースのメモリ使用量(単位:キロバイト)=A×B+C
システムコンフィグプロパティファイルのパラメーターについては,「8.6 システムコンフィグプロパティファイル(system_config.properties)」を参照してください。
SDPサーバ用定義ファイルのシステムコンフィグプロパティファイル(system_config.properties)のtpl.outputTriggerパラメーターで,タプルログのファイルへの出力契機を変更できます。
tpl.outputTriggerパラメーターで,タプルログのファイルへの出力契機に「BUFFER(デフォルト値)」を指定すると,ストリーム一つ当たりのタプルログの取得に必要なメモリ使用量に影響します。
タプルログのファイルへの出力契機に「BUFFER」を指定する場合の,ストリーム一つ当たりのタプルログの取得に必要なメモリ使用量は,次に示す計算式で求められます。
ストリーム一つ当たりのタプルログの取得に必要なメモリ使用量(単位:キロバイト)=A×B
システムコンフィグプロパティファイルのパラメーターについては,「8.6 システムコンフィグプロパティファイル(system_config.properties)」を参照してください。
クエリグループ一つ当たりのメモリ使用量は,次に示す計算式で求められます。
クエリグループ一つ当たりのメモリ使用量(単位:メガバイト)= 2※1×登録したクエリグループに含まれるクエリの数×128※2
タイムスタンプ調整機能を使用する場合のメモリ使用量は,次に示す計算式で求められます。
タイムスタンプ調整に必要なメモリ使用量(単位:バイト)= 入力ストリームの数×時刻単位当たりのタプル数×時刻調整範囲×A
計算式中の「時刻単位当たりのタプル数」と「時刻調整範囲」の指定値は,SDPサーバ用定義ファイルのシステムコンフィグプロパティファイル(system_config.properties),クエリグループ用プロパティファイル,またはストリーム用プロパティファイルのstream.timestampAccuracyパラメーターの指定値によって変わります。stream.timestampAccuracyパラメーターの指定値と計算式中の値との関係を次の表に示します。
stream.timestampAccuracyパラメーターの指定値 | 時刻単位当たりのタプル数の指定値 | 時刻調整範囲の指定値 |
---|---|---|
unuse | 0 | 0 |
unuse以外 | 時刻単位当たりのタプル数 | 時刻調整範囲※+1 |
各ファイルのパラメーターについては,「8.6 システムコンフィグプロパティファイル(system_config.properties)」,「8.7 クエリグループ用プロパティファイル」,または「8.8 ストリーム用プロパティファイル」を参照してください。
All Rights Reserved. Copyright (C) 2010, 2014, Hitachi, Ltd.