/ tmp文件填满了surefires文件

时间:2011-07-13 02:30:21

标签: surefire clover

当Jenkins调用maven build时,/ tmp会填充100个surefire839014140451157473tmp,如何在构建期间显式重定向到另一个目录。对于三叶草构建,它填充了100s的grover53460334580.jar?有没有想过来这个?

任何人都知道一步一步创建ramdisk所以我可以将surefire的东西重定向到那个ramdisk?它会节省硬盘的写入时间吗?

由于

1 个答案:

答案 0 :(得分:0)

许多程序都尊重TMPDIR(有时是TMP)环境变量。也许Jenkins使用尊重它们的API?尝试:

TMPDIR=/path/to/bigger/filesystem jenkins

启动Jenkins时。 (或者你启动它 - 它是作为一个守护进程运行并有一个shell脚本来启动它吗?)

使用基于RAM的文件系统可能有一些性能优势 - ext3,ext4和类似的日志文件系统将命令写入磁盘,甚至快速fd=open(O_CREAT); unlink(fd);序列将可能需要磁盘日志更新和目录更新。 (作业:测试一下。)基于RAM的文件系统不会执行日志记录,可能会也可能不会写入任何内容(取决于你选择的那个)。

有两个主要选择:ramfs是进入内核缓存机制的一个非常简单的窗口。根本没有基于磁盘的文件支持,也没有内存限制。你可以很快地填补你的所有记忆,并承受非常可怕的后果。 (几乎没有程序可以很好地处理磁盘外,并且OOM杀手无法释放任何内存。)请参阅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轻松实现,以使其仅对您的Jenkins和子进程可见。