我已经在我的CentOS机器中部署了Jenkins,Jenkins工作了3天,但是昨天有一个'磁盘空间太低了。仅剩1.019GB。问题。
如何解决这个问题,让我的主人离线数小时?
答案 0 :(得分:22)
您可以轻松地从jenkins UI更改阈值(我的版本是1.651.3):
[]
此功能旨在防止在可用磁盘空间较小的从站上工作。降低阈值并不能解决一些工作在完成后没有正确清理的事实。
取决于您正在建设的内容:
Alternative1 - 为每个作业提供一个新的奴隶(使用现场奴隶 - 有许多插件可以与不同的云提供商集成,以便按需提供飞行机器)
Alternative2 - 在容器内运行构建。一旦构建完成,一切都将被丢弃
答案 1 :(得分:8)
除了上述解决方案之外,还有一种“常见”方式 - 直接删除Linux机器中最大的空间使用者。您可以按照以下步骤操作:
使用
ls -lart
列出隐藏文件夹,通常是jenkin 安装位于.jenkins /文件夹[xxxxx~] $ ls -lart
drwxrwxr-x 12 xxxx 4096 Feb 8 02:08 .jenkins /
答案 2 :(得分:6)
您可以通过丢弃旧版本来限制磁盘空间的减少。在项目配置中有一个复选框。
答案 3 :(得分:3)
这实际上是一个合法的问题所以我不理解downvotes,也许它属于Superuser或Serverfault。这是一个软警告阈值,而不是磁盘空间不足的硬限制。
hudson.diagnosis.HudsonHomeDiskUsageChecker.freeSpaceThreshold
。
说我没有测试它并且有免责声明
无兼容性保证
一般来说,这些开关通常是实验性的,如有变更,恕不另行通知。如果您发现其中一些有用,请提交一张票,将其推广到官方功能。
答案 4 :(得分:3)
I got the same issue. My jenkins version is 2.3 and its UI is slightly different. Putting it here so that it may helps someone. Increasing both disk space thresholds to 5GB fixed the issue.
答案 5 :(得分:1)
我具有以下构建步骤的清理作业。您可以将其安排为@daily或@weekly。
Execute system groovy script
构建步骤以清理旧工作: import jenkins.model.Jenkins
import hudson.model.Job
BUILDS_TO_KEEP = 5
for (job in Jenkins.instance.items) {
println job.name
def recent = job.builds.limit(BUILDS_TO_KEEP)
for (build in job.builds) {
if (!recent.contains(build)) {
println "Preparing to delete: " + build
build.delete()
}
}
}
您需要安装Groovy插件。
Execute shell
构建步骤以清除缓存目录rm -r ~/.gradle/
rm -r ~/.m2/
echo "Disk space"
du -h -s /
答案 6 :(得分:0)
以 Jenkins Job 来检查可用空间:
FREE_SPACE
:所需的可用空间为 GB 。#!/usr/bin/env bash
free_space="$(df -Ph . | awk 'NR==2 {print $4}')"
if [[ "${free_space}" = *G* ]]; then
free_space_gb=${x/[^0-9]*/}
if [[ ${free_space_gb} -lt ${FREE_SPACE} ]]; then
echo "Warning! Low space: ${free_space}"
exit 2
fi
else
echo "Warning! Unknown: ${free_space}"
exit 1
fi
echo "Free space: ${free_space}"
Free space: (.*)
说明:Free space: \1
构建失败的正则表达式:Warning! (.*)
\1
答案 7 :(得分:0)
对于不知道配置在哪里的人,请从以下位置下载 tmpcleaner https://updates.jenkins-ci.org/download/plugins/tmpcleaner/
您将在此处获得一个 hpi 文件。转到 Manage Jenkins-> Manage plugins-> Advanced 然后在这里上传 hpi 文件并重新启动 jenkins
如果您转到管理节点,您可以立即看到不同之处。
由于我的 jenkins 安装在 debian 服务器中,我无法理解与此相关的大部分答案,因为我找不到 /etc/default 文件夹或 jenkins 文件。 如果有人知道 /tmp 文件夹在哪里或如何为 debian 配置它,请在评论中告诉我