Node.js アプリケーションのストレージ所要量の計算
CICS® 領域で 1 つ以上の Node.js アプリケーションを始動する場合は、各 Node.js アプリケーションで使用できるストレージ容量が十分にあることを確認する必要があります。 CICS および同じ領域で実行されている他の製品は、かなりの量の z/OS® ストレージを必要とする可能性があります。 DSALIM や EDSALIM などの CICS の割り振りパラメーターは、ストレージの可用性に影響を与えます。また、これらはピーク所要量と比較して過剰に割り振られることがあります。
このタスクについて
Node.js アプリケーションに必要なストレージは、CICS DSA や EDSA ストレージから割り振られません。 一部のストレージは、Cコードによって発行 malloc() されるなどのリクエストを処理する Language Environment® によって管理され、また別の部分は、 z/OS ストレージ管理リクエスト( IARV64 やなど)を使用する STORAGE OBTAINNode.js アプリケーションによって直接管理されます。 Language Environment は z/OS ストレージ・サービスを使用します。
Node.js ランタイムで使用される各スレッドには、4 KB の 24 ビット・ストレージが必要です。 使用されるスレッド数は、Node.js ランタイムが開始されると固定され、UV_THREADPOOL_SIZE 環境変数を設定しないかぎり、通常は 8 から 12 の間です。 さらに、UNIX System Services では、各スレッドの作成処理時に、連続する 24 ビット・ストレージが 256 KB 必要です。
Node.js ランタイムは、JavaScript オブジェクトおよび JIT コンパイル済みコードにヒープを割り振ります。 z/OS 2.3 以上では、ヒープは 31 ビット・ストレージと 64 ビット・ストレージの両方にまたがることができます。 また、ヒープは複数のスペースからなり、それぞれのサイズは個別に異なります。 テスト環境でヒープ使用量を測定することが、ヒープ・サイズ所要量を見積もる最も単純な方法です。 Node.js ランタイム用に UNIX System Services ダイナミック・リンク・ライブラリー (DLL) ファイルをロードするためには、31 ビット・ストレージも必要です。
さらに、C++ のヒープおよびスタック用に Language Environment により、64 ビット・ストレージが割り振られます。 これは内部で Node.js ランタイム・コードにより、そしてネイティブ・モジュールによって使用されます。
Node.js アプリケーションに必要な総ストレージ量を見積もるには、次の手順を実行します。