多くのプログラムはTMPDIR
(そして時にはTMP
)環境変数を尊重します。多分、ジェンキンスはそれらを尊重するAPIを使用するでしょうか?試してください:
TMPDIR=/path/to/bigger/filesystem jenkins
ジェンキンスを起動します。
ここでかもしれないは、RAMベースのファイルシステム(ext3、ext4など)を使用することでいくつかのパフォーマンス上のメリットを得ることができます(ただし、デーモンとして起動し、起動するシェルスクリプトはありますか?同様のジャーナルファイルシステムではディスクへの書き込みが指示され、さらに高速のfd=open(O_CREAT); unlink(fd);
シーケンスでも、ディスク上のジャーナル更新とディレクトリ更新の両方が必要になることがあります。 (宿題:これをテストしてください。)RAMベースのファイルシステムはジャーナリングを実行せず、ディスクに何かを書き込むかもしれません。
2つの主な選択肢があります。ramfs
は、カーネルのキャッシュ機構の非常に単純なウィンドウです。ファイルにはディスクベースのバッキングはまったくなく、メモリの制限もありません。あなたはこれらのいずれかであなたの記憶をすべてすばやく埋めることができ、非常に恐ろしい結果に苦しんでいます。 (ほとんどのプログラムがディスク外れをうまく処理できず、OOM-killerはこのメモリを解放することはできません。)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
環境変数と組み合わせたり、Documentation/filesystems/sharedsubtree.txt
の新しい共有サブツリー機能について学んだり、pam_namespace
で簡単に作成して、ジェンキンスと子プロセスにのみ表示させることができます。