/tmp 文件充满了 Surefires 文件

发布于 2024-11-24 03:10:41 字数 232 浏览 4 评论 0原文

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

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

谢谢

When Jenkins invokes maven build, /tmp fills with 100s of surefire839014140451157473tmp, 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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

野却迷人 2024-12-01 03:10:41

许多程序都遵循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。更改 <如果需要,请使用 code>defaults。)

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

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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文