TMPDIR
多くのプログラムは(場合によってはTMP
) 環境変数を尊重します。Jenkins はそれらを尊重する API を使用しているのでしょうか? 試す:
TMPDIR=/path/to/bigger/filesystem jenkins
Jenkinsを起動するとき。(または、どのように起動しても、デーモンとして実行され、起動するシェルスクリプトがありますか?)
RAM ベースのファイルシステムを使用すると、パフォーマンスが向上する可能性があります。ext3、ext4、および同様のジャーナリングされたファイルシステムは、ディスクへの書き込みを順序付けます。また、クイックfd=open(O_CREAT); unlink(fd);
シーケンスでも、ディスク上のジャーナル更新とディレクトリ更新の両方が必要になる可能性があります。(宿題: これをテストしてください。) RAM ベースのファイルシステムはジャーナリングを実行せず、ディスクに何かを書き込む場合と書き込まない場合があります (どちらを選択するかによって異なります)。
主な選択肢は 2 つありますramfs
。カーネルのキャッシュ メカニズムへの非常に単純なウィンドウです。ファイルのディスク ベースのバッキングはまったくなく、メモリの制限もありません。これらの 1 つですべてのメモリがすぐにいっぱいになり、非常に恐ろしい結果に苦しむ可能性があります。(ディスク不足を適切に処理するプログラムはほとんどなく、OOM キラーはこのメモリを解放できません。) Linux カーネル ファイル を参照してくださいDocumentation/filesystems/ramfs-rootfs-initramfs.txt
。
tmpfs
をわずかに変更したものですramfs
-- 割り当てることができるスペースの上限を指定でき ( -o size
) 、ページ キャッシュはデータをスワップ パーティションまたはスワップ ファイルにスワップできます -- これは優れたボーナスです。コンパイラ、リンカー、ソース ファイル、オブジェクト ファイルをコアに保持するなど、他の場所で使用することをお勧めします。Linux カーネル ファイルを参照してくださいDocumentation/filesystems/tmpfs.txt
。
この行をあなたに追加すると、グローバル/etc/fstab
に変更されます:/tmp
tmpfs /tmp tmpfs defaults 0 0
(デフォルトでは、RAM の最大半分をファイルシステムで使用できるようになっています。defaults
必要に応じて を変更してください。)
他の場所にマウントしたい場合はtmpfs
、できます。それを上記の環境変数と組み合わせるかTMPDIR
、新しい共有サブツリー機能について学習するか、Jenkins と子プロセスのみに表示されるようにすることでDocumentation/filesystems/sharedsubtree.txt
簡単になります。pam_namespace