2011-07-13 7 views
1

ジェンキンスがmavenビルドを起動すると、/ tmpは100fのsurefire839014140451157473tmpで埋められ、ビルド中に別のディレクトリに明示的にリダイレクトする方法。クローバーのビルドのために、grover53460334580.jarの100sで満たされますか?これ以上のアイデアはありますか?/tmpファイルがsurefiresファイルでいっぱいになる

そして、私はどんな体でも正確なステップを知っているので、私はそのRAMディスクに確実なものをリダイレクトできますか?ハードドライブに書き込み時間を節約できますか?

おかげ

答えて

0

多くのプログラムは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を参照してください。

tmpfsramfsのわずかな変更である - あなたは、スペースの上限を指定することができ、それはページキャッシュがスワップパーティションまたはスワップファイルにデータを交換することができます(-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で簡単に作成して、ジェンキンスと子プロセスにのみ表示させることができます。