1

Jenkins が maven ビルドを呼び出すと、ビルド中に別のディレクトリに明示的にリダイレクトする方法で、/tmp が数百の Surefire839014140451157473tmp でいっぱいになります。クローバービルドの場合、何百もの grover53460334580.jar でいっぱいになりますか? これを乗り越えるアイデアはありますか?

そして、ラムディスクを作成するための正確なステップバイステップを知っている人がいるので、確実なものをそのラムディスクにリダイレクトできますか?ハードドライブへの書き込み時間を節約できますか?

ありがとう

4

1 に答える 1

0

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

于 2011-07-13T03:05:08.787 に答える