オンプレミスプランで利用しているサーバーに十分なメモリがある場合でも、サイズの大きいダッシュボードまたはノートのスケジュールやパラメーターを更新しようとしたときに、「データサイズが大きいため、処理に失敗した可能性があります」いったエラーがサーバー上で表示される場合があります。このエラーはExploratory サーバーのメモリの割り当てを増やすことで解消できることがあります。
Exploratory サーバーでは、メモリの割り当てを増やすことができる場所が2か所あります。Rの実行環境と、Webサーバの実行環境です。それぞれのメモリの割り当てを増やす方法を、以下に紹介します。
テキストエディターで`ddocker-compose.yml`を開き、以下のパラメーターを`rserve`のセクションに追加します。
パラメータの詳細については、Dockerのドキュメントを参照してください。それぞれのパラメーターの値は、Dockerを実行しているシステムの程度によって変わってきます。システム上でDocker以外のプロセスが稼働していない場合、システムのメモリサイズから、他のコンポーネントの実行に必要な分2GBを差し引いた値が目安になります。例えば、システムのメモリサイズが16GBの場合、14GB程度になります。以下に、メモリとスワップのサイズをそれぞれ14GB, メモリの予約サイズを1Gとする例を紹介します。
rserve:
  image: r-exploratory:10.2.1
  shm_size: '14gb'
  mem_limit: '14gb'
  memswap_limit: '14gb'
  mem_reservation: '1gb'
変更を終えたらファイルを保存します。
オンプレミス・サーバーを再起動して、変更を有効にします。
docker-compose down
docker-compose up -d
ターミナル・ウィンドウから次のコマンドを実行して、デフォルトのexploratory DockerイメージのDockerコンテナを起動します。
この例では、Exploratory サーバーのバージョン 7.0.9 のDockerイメージを使用します。
ご自身の環境で実施するときには、コマンド内のバージョン番号を使用しているバージョン番号に置き換えてください。
docker run -it exploratory:7.0.9 /bin/bash次に設定ファイルを更新する必要があるため、テキストエディタをインストールします。以下は Vim エディタのインストール例です。
apt-get update
apt-get -y --no-install-recommends install vimエディタを指定して設定ファイルのdatablog/pm2_single.jsonを開きます。
vim datablog/pm2_single.json
以下のようにnode_argsの行に--max-old-space-size=4096" のパラメーターを追加します。
このときの単位はメガバイトですので、4096メガバイトつまりは4GB を意味します。サーバーにより大きなサイズのメモリがある場合には、より大きな値を指定します。
"node_args": [ "--harmony" ],
"node_args": [ "--harmony", "--max-old-space-size=4096" ],
変更を終えたらファイルを保存します。
別のターミナル・ウィンドウで次のコマンドを実行して、実行中のDockerのコンテナIDを見つけます。
docker ps上記のコマンドにより、以下のようなテーブルが出力されます。
CONTAINER ID        IMAGE                  COMMAND         PORTS       
aad6f8d956a9        exploratory:7.0.9      "/bin/bash"    6311/tcp     テーブルから Dockerコンテナのコンテナ IDを見つけます。今回の例では、aad6f8d956a9 がコンテナ IDです。複数行が出力される場合は、とコマンドのIMAGE と/bin/bashにexploratory:が含まれる行を探してください。
次のコマンドを実行して、上記の変更を加えたこのコンテナを別のDockerイメージとして保存します。今回は、新しいイメージにカスタマイズしたバージョン番号 7.0.9.1 を付けます。
docker commit  -c 'CMD ["./start.sh"]' -c 'EXPOSE 3000' aad6f8d956a9  exploratory:7.0.9.1作成した新しいDockerイメージを使用してDockerコンテナを起動します。
docker run -it exploratory:7.0.9.1 /bin/bash設定ファイルの内容を表示し、変更を確認します。
cat datablog/pm2_single.jsondocker-compose.yml ファイル内で、exploratory DockerコンテナのDockerイメージのバージョンを指定する行を見つけ、そのバージョンを作成したDockerのバージョンに更新します。
...
  exploratory:
    image: exploratory:7.0.9
...
...
  exploratory:
    image: exploratory:7.0.9.1
...
オンプレミス・サーバーを再起動して、変更を有効にします。
docker-compose down
docker-compose up -d