RAM ディスクを使用してステップを高速化する

ディスクの IO への依存度が高いタスクは、ディスク内ではなくメモリ内で操作を実行することで高速化できることがあります。 CircleCI で Docker Executor を使用している場合は特にこれが顕著です。詳細については、こちらのブログ記事で詳しく解説しています。

Docker Executor

Docker Executor では利用可能な RAM ディスクがデフォルトで有効化されており、これを使用することでステップを劇的に高速化できます。 キャッシュまたはワークスペースの復元のようなステップでは、この方法を強くお勧めします。 構成方法について詳しくは、こちらのドキュメントをご覧ください。

簡単に説明すると、/mnt/ramdisk という、あらゆるディレクトリの代わりになる特別なディレクトリを使用します。 ここに保存されたファイルは、マシンに割り当てられているリソース クラスのメモリを使用します。 たとえば、ジョブの設定ファイルで「working_directory: /mnt/ramdisk」と指定すると、作業ディレクトリ全体がメモリに保存されるように設定することができます。

その他の Executor

RAM ディスクは、その他の Executor ではデフォルトで構成されることはありません。 これらの Executor は分離された VM として動作するので、上記のブログ記事で触れている問題は起こりません。そのため、RAM ディスクが必要になる可能性は低くなります。 ただし、RAM ディスクを使用すると、ハード ディスクよりも優れたパフォーマンスが得られる場合があります。 Docker 以外の Executor (Machine、MacOS など) では環境を非常に細かく制御でき、独自の RAM ディスクの構成も可能です。 Linux ベースのシステムでの手順については、Stack Exchange のこちらの回答などを参照してください。

この記事は役に立ちましたか?
0人中0人がこの記事が役に立ったと言っています