1

当 Jenkins 调用 maven build 时,/tmp 填充了 100s 的surefire839014140451157473tmp,如何在构建过程中显式重定向到另一个目录。对于 clover 构建,它填充了 100 个 grover53460334580.jar?有什么想法可以解决这个问题吗?

并且任何人都知道创建 ramdisk 的确切步骤,以便我可以将肯定的东西重定向到该 ramdisk 中?它会节省写入硬盘的时间吗?

谢谢

4

1 回答 1

0

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

TMPDIR=/path/to/bigger/filesystem jenkins

启动詹金斯时。(或者无论你如何启动它——它是否作为守护进程运行并有一个 shell 脚本来启动它?)

使用基于 RAM 的文件系统可能会带来一些性能优势—— ext3、ext4 和类似的日志文件系统将按顺序写入磁盘,即使是快速fd=open(O_CREAT); unlink(fd);序列也可能需要磁盘上的日志更新和目录更新。(家庭作业:测试一下。)基于 RAM 的文件系统不会执行日志记录,并且可能会或可能不会将任何内容写入磁盘(取决于您选择哪个)。

有两个主要选择:ramfs是一个非常简单的进入内核缓存机制的窗口。您的文件根本没有基于磁盘的备份,也没有内存限制。你可以很快地用其中一种来填满你的所有记忆,并遭受非常可怕的后果。(几乎没有程序能很好地处理磁盘外的问题,OOM-killer 也无法释放这些内存。)请参阅 Linux 内核文件Documentation/filesystems/ramfs-rootfs-initramfs.txt

tmpfs稍作修改——您可以指定它可以分配的ramfs空间上限(更好地用于其他地方,例如将编译器、链接器、源文件和目标文件保存在核心中。请参阅 Linux 内核文件。-o sizeDocumentation/filesystems/tmpfs.txt

将此行添加到您的/etc/fstabwill/tmp全局更改:

tmpfs   /tmp    tmpfs   defaults    0 0

(默认设置是允许在文件系统上使用最多一半的 RAM。defaults如果需要,请更改。)

如果您想在tmpfs其他地方安装,您可以;可能将其与TMPDIR上面的环境变量结合起来,或者了解新的共享子树功能,Documentation/filesystems/sharedsubtree.txt或者通过使其易于使用pam_namespace,使其仅对您的 Jenkins 和子进程可见。

于 2011-07-13T03:05:08.787 回答