开发者

/tmp files filling up with surefires files

开发者 https://www.devze.com 2023-03-20 02:13 出处:网络
When Jenkins invokes maven build, /tmp fills with 100s of surefire8390141404开发者_运维知识库51157473tmp, how to explicitly redirect to another directory during the build. For clover build it fills wi

When Jenkins invokes maven build, /tmp fills with 100s of surefire8390141404开发者_运维知识库51157473tmp, how to explicitly redirect to another directory during the build. For clover build it fills with 100s of grover53460334580.jar? Any idea to over come this?

And any body know exact step by step to create ramdisk so I could redirect surefire stuffs into that ramdisk ? Will it save write time to hard drive?

Thanks


Many programs respect the TMPDIR (and sometimes TMP) environment variables. Maybe Jenkins uses APIs that respect them? Try:

TMPDIR=/path/to/bigger/filesystem jenkins

when launching Jenkins. (Or however you start it -- does it run as a daemon and have a shell-script to launch it?)

There might be some performance benefit to using a RAM-based filesystem -- ext3, ext4, and similar journaled filesystems will order writes to disk, and even a quick fd=open(O_CREAT); unlink(fd); sequence will probably require both on-disk journal updates and directory updates. (Homework: test this.) A RAM-based filesystem won't perform the journaling, and might or might not write anything to disk (depending upon which one you pick).

There are two main choices: ramfs is a very simple window into the kernel's caching mechanism. There is no disk-based backing for your files at all, and no memory limits. You can fill all your memory with one of these very quickly, and suffer very horrible consequences. (Almost no programs handle out-of-disk well, and the OOM-killer can't free up any of this memory.) See the Linux kernel file Documentation/filesystems/ramfs-rootfs-initramfs.txt.

tmpfs is a slight modification of ramfs -- you can specify an upper limit on the space it can allocate (-o size) and the page cache can swap the data to the swap partitions or swap files -- which is an excellent bonus, as your memory might be significantly better used elsewhere, such as keeping your compiler, linker, source files, and object files in core. See the Linux kernel file Documentation/filesystems/tmpfs.txt.

Adding this line to your /etc/fstab will change /tmp globally:

tmpfs   /tmp    tmpfs   defaults    0 0

(The default is to allow up to half your RAM to be used on the filesystem. Change the defaults if you need to.)

If you want to mount a tmpfs somewhere else, you can; maybe combine that with the TMPDIR environment variable from above or learn about the new shared-subtree features in Documentation/filesystems/sharedsubtree.txt or made easy via pam_namespace to make it visible only to your Jenkins and child processes.

0

精彩评论

暂无评论...
验证码 换一张
取 消