我已经在我的CentOS机器上部署了 Jenkins,Jenkins运行了 3 天,但是昨天出现了Disk space is too low. Only 1.019GB left.
问题。
我该如何解决这个问题,它使我的主人离线数小时?
您可以从 jenkins UI 轻松更改阈值(我的版本是 1.651.3):
[ ]
此功能旨在防止在可用磁盘空间不足的从站上工作。降低阈值并不能解决某些作业在完成后无法正确清理的事实。
根据您正在构建的内容:
Alternative1 - 为每个作业提供一个新的从属(使用现场从属 - 有许多插件与不同的云提供商集成以按需提供动态机器)
Alternative2 - 在容器内运行构建。构建完成后,所有内容都将被丢弃
除了上述方案,还有一种更“常见”的方式——直接从Linux机器上删除最大的空间消耗者。您可以按照以下步骤操作:
ls -lart
用于列出隐藏文件夹,通常 jenkin 安装放在 .jenkins/ 文件夹中[xxxxx ~]$ ls -lart
drwxrwxr-x 12 xxxx 4096 2 月 8 日 02:08 .jenkins/
用于
df -h
高级别显示磁盘空间
du -sh ./*/
列出当前路径中每个子文件夹的总内存。
du -a /etc/ | sort -n -r | head -n 10
将列出 /etc/ 中占用磁盘空间的前 10 个目录
通常
./job/
文件夹或./workspace/
文件夹可以是最大的文件夹。请进入并根据需要删除(不要删除整个文件夹)。
rm -rf theFolderToDelete
您可以通过丢弃旧版本来限制磁盘空间的减少。在项目配置中有一个复选框。
这实际上是一个合法的问题,所以我不理解反对意见,也许它属于超级用户或服务器故障。这是磁盘空间不足的软警告阈值,而不是硬限制。
詹金斯也是一样。结论是对于许多小型项目, 调用的系统属性hudson.diagnosis.HudsonHomeDiskUsageChecker.freeSpaceThreshold
可以减少。
在说我没有测试它并且有一个免责声明
没有兼容性保证
一般来说,这些开关通常是实验性质的,如有更改,恕不另行通知。如果您发现其中一些有用,请提交一张票以将其推广到官方功能。
要检查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
我有以下构建步骤的清理工作。你可以安排它@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 /
对于不知道配置在哪里的人,请从https://updates.jenkins-ci.org/download/plugins/tmpcleaner/下载 tmpcleaner
您将在此处获得一个 hpi 文件。转到 Manage Jenkins-> Manage plugins-> Advanced 然后在这里上传 hpi 文件并重启 jenkins
如果您转到管理节点,您可以立即看到不同之处。
由于我的 jenkins 安装在 debian 服务器中,因此我不理解与此相关的大多数答案,因为我找不到 /etc/default 文件夹或 jenkins 文件。如果有人知道 /tmp 文件夹在哪里或如何为 debian 配置它,请在评论中告诉我