メモリの調整
同時に使用するユーザーが複数いる場合や作業不可の高い処理を行っている場合など、大規模なデプロイメントを管理する際、普段の処理が中断してしまうのを避けるためにリソースの割り当てを考慮する必要があります。
このページでは、RapidMinerプラットフォームのデプロイメントにおいて、様々なコンポーネントが使用するリソースを調整する方法と、その必要性がある典型的なシナリオを紹介します。
リソースの枯渇を避けるために、プラットフォームに設定されている、または必要なメモリの合計が、ホストマシンの物理メモリの制限を超えていないかダブルチェックしてください。
シングルマシンデプロイメントの調整
RapidMiner Serverのメモリ設定の調整
デフォルトでは、RapidMiner Serverは最大2GBのメモリが使用できるように設定されています。多数のジョブを実行している場合、特に多くのWebサービスやWebアプリを実行している場合は、この制限を引き上げる必要があるでしょう。
メモリの制限は、RapidMiner ServerコンテナのSERVER_MAX_MEMORY環境変数によって制御されます。
これを変更するには、Docker Deployment Managerを使用するか、ターミナルを使用してデプロイメントを実行しているホストマシンに接続します。そして、.envファイルを編集し、最後にdocker-compose up -dコマンドを実行して変更を適用します。
このアクションはRapidMiner Serverコンポーネントを再起動するので、重要な操作に影響を与えないか確認してください。
ジョブエージェントのメモリ設定の調整
デフォルトでは、RapidMinerジョブエージェントは2つのジョブコンテナを生成し、それぞれ最大2GBのメモリを使用するよう設定されています。
並行して実行するRapidMinerプロセスの数を増やしたい場合は、ジョブエージェントの数を増やすか、ジョブエージェントに設定するジョブコンテナの数を増やす必要があります。
多くのメモリを必要とするプロセスを実行している場合は、ジョブコンテナに割り当てるメモリの量を増やす必要があります。
ジョブコンテナの数は、ジョブエージェントコンテナの環境変数JOBAGENT_CONTAINER_COUNTによって制御されます。ジョブコンテナが使用できるメモリの量は、ジョブエージェントコンテナの環境変数JOBAGENT_CONTAINER_MEMORYLIMITによって制御されます。
これを変更するには、Docker Deployment Managerを使用するか、ターミナルを使用してデプロイメントを実行しているホストマシンに接続します。そして、.envファイルを編集し、最後にdocker-compose up -dコマンドを実行して変更を適用します。
このアクションはRapidMiner Job Agentコンポーネントを再起動するので、重要な操作に影響を与えないか確認してください。
様々な形状やサイズのジョブエージェントのプロビジョニング
デフォルトでは、すべてのジョブエージェントは同じDEFAULTキューに接続します。一般的な使用例は、大規模なジョブ用に別のキューを用意し、そのキューの中で、メモリ制限を大きくしたジョブコンテナをもつジョブエージェントがジョブの実行をリッスンするというものです。
そのためには、プラットフォームの定義ファイル内で、ジョブエージェントサービスの定義を「クローン」する必要があります。rm-server-job-agent-svcの定義を複製して、必要に応じてJOBAGENT_CONTAINER_COUNT、JOB_QUEUE、JOBAGENT_CONTAINER_MEMORYLIMIT環境変数を変更します。
Docker Deployment Managerを使用するか、ターミナルを使用してデプロイメントを実行しているホストマシンに接続します。そして、.envファイルとdocker-compose.ymlファイルを編集し、最後にdocker-compose up -dを実行して変更を適用します。
その後、必要に応じて、他とは別に、この新しいジョブエージェントを拡張することができます。
JupyterHubユーザーのCPUとメモリの制限
RapidMinerプラットフォームに同梱されているJupyterHubを使用する場合、各ユーザーは、ノートブックカーネルを実行できるノートブックコンテナが1つに制限されています。効率よくリソース配分を行うために、各ノートブックコンテナが利用できるCPUコアとメモリのデフォルトの最大値を実装しました。
ノートブックコンテナのリソース制限を変更するには、docker-compose.ymlで手動で変更するか、Docker Deployment Managerを使用して関連するDockerの環境変数を変更する必要があります。これらの設定を変更した後は、必ずJupyterHubのバックエンドコンテナを再起動してください。
設定されたメモリ制限は、すべてのユーザーのノートブックコンテナに適用されます。