4
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

[Talend Studio]tRunJobコンポーネントのメモリの動きを確認してみた

Posted at

はじめに

Talend Studioという製品は、ETLやデータ統合を効率化するための開発環境です。GUIベースでジョブ設計ができ、複雑な処理もノーコードで実現可能。オンプレやクラウドを問わず、幅広いデータ連携をサポートします。

そこで使われるコンポーネントの一つにtRunJobというジョブの中からジョブを呼び出すコンポーネントがあります。
本記事ではこのtRunJobコンポーネントについて深堀していきます。

実施したいこと

tRunJobコンポーネントの「子ジョブを独立したプロセスで実行」を有効化した際、メモリ確保がどうなるか理解する。

そのために、以下のケースでメモリ確保の確認をしていきます。

  1. tRunjobを使わない場合
  2. tRunjobの「子ジョブを独立したプロセスで実行」を無効にした場合
  3. tRunjobの「子ジョブを独立したプロセスで実行」を有効にした場合
  4. おまけ:tRunjobの「子ジョブを独立したプロセスで実行」を有効にして複数同時にプロセス起動した場合

1.tRunjobを使わない場合

検証用にtSleepコンポーネントで10s待機するジョブを作成しました。
また、JVMパラメータに-Xms、-Xmxを1024MBで設定しました。
image.png

実行結果

リソースモニターのコミットチャージ※1を確認するとジョブを起動時に1024MB分膨らんでいるのが分かります。

※1:OSが『この分のメモリは使えるようにしておくよ』と約束した量で、物理メモリ+ページファイルの合計で管理されます。

image.png

2.tRunjobの「子ジョブを独立したプロセスで実行」を無効にした場合

以下のようなジョブを作成しました。
①tLoopコンポーネントで以下の②~③を5回ループする。
②tRunJobコンポーネントからtSleepで5秒待機するジョブを実行。
③tSleepコンポーネントで2秒待機する。

tJavaコンポーネントは何もしません。後続処理をOnCompornentOkトリガで接続したいために置いております。

image.png
image.png

実行結果

メモリ確保は1024MBで一定でした。
image.png

3.tRunjobの「子ジョブを独立したプロセスで実行」を有効にした場合

ジョブ自体は2.とほぼ同じで違いは「子ジョブを独立したプロセスで実行」を有効にしております。
image.png

実行結果

ジョブを呼び出している間だけ2048GB確保しているのが分かります。
image.png

おまけ

■tRunjobの「子ジョブを独立したプロセスで実行」を有効にして複数同時にプロセス起動した場合
tLoopコンポーネントのループ回数を増やして、iterateトリガーの並列処理数を20にしてみました。
検証環境はメモリが16GBなのでどうなるの確認します。
image.png

実行結果

メモリ確保が一気にあがっているのが分かります。
image.png

また、Talend Studioはエラーで停止しました。内容を確認するとJavaが必要なメモリを確保できず、実行を続行できなくて終了しているようです。
image.png

まとめ

tRunJobコンポーネントを使うことで呼び出しているジョブとは別にメモリ確保することが可能。だだし、並列実行を有効化するとメモリを圧迫するので気をつける必要があることがわかりました。

また、tRunJobコンポーネントについては以下の記事でも紹介しております。

以上、閲覧ありがとうございました。

4
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?