我已经在我的CentOS机器上部署了Jenkins,Jenkins运行良好三天,但昨天出现了磁盘空间太低。只剩下1.019GB。
的问题。
我该如何解决这个问题?它让我的主节点离线几小时了?
您可以轻松地从 Jenkins UI 中更改阈值(我的版本为 1.651.3):
[]
该功能旨在防止在空闲磁盘空间不足的从机上工作。降低阈值无法解决某些作业完成后未正确清理的问题。
根据您正在构建的内容:
替代方法1 - 为每个作业提供一个新的从机(使用 spot slaves - 有许多插件与不同的云服务提供商集成,可按需动态提供计算机)
替代方法2 - 在容器内运行构建。所有内容都会在构建完成后被丢弃。
使用
ls -lart
命令列出隐藏文件夹,通常Jenkins安装在.jenkins/文件夹中[xxxxx ~]$ ls -lart
drwxrwxr-x 12 xxxx 4096 Feb 8 02:08 .jenkins/
使用
df -h
显示磁盘空间的高级别信息
du -sh ./*/
列出当前路径下每个子文件夹的总内存。
du -a /etc/ | sort -n -r | head -n 10
会列出占用/etc/磁盘空间前10的目录。
通常
./job/
文件夹或./workspace/
文件夹可能是最大的文件夹。请进入其中并根据需要删除(不要删除整个文件夹)。
rm -rf 要删除的文件夹名称
您可以通过丢弃旧版本来限制磁盘空间的使用。在项目配置中,有一个复选框可供此用。
这实际上是一个合法的问题,所以我不明白为什么会有负评,也许它应该属于Superuser或Serverfault。这是一个软性警告阈值,而不是硬性限制,当磁盘空间不足时。
Jenkins也是一样。结论是对于许多小型项目,可以降低名为hudson.diagnosis.HudsonHomeDiskUsageChecker.freeSpaceThreshold
的系统属性。
话虽如此,我还没有测试过,而且有免责声明:
没有兼容性保证
总的来说,这些开关通常具有实验性质,并且可能随时更改。如果您发现其中一些有用,请提交工单以将其升级为官方功能。
我有一个清理任务,包括以下构建步骤。你可以每天或每周安排它。
执行系统Groovy脚本
构建步骤来清理旧的任务: 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插件。
执行 shell
构建步骤来清理缓存目录rm -r ~/.gradle/
rm -r ~/.m2/
echo "Disk space"
du -h -s /
检查空闲空间作为Jenkins任务:
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}"
可用空间: (.*)
描述: 可用空间:\1
失败构建的正则表达式: 警告!(.*)
\1
对于不知道配置文件在哪里的人,可以从以下链接下载tmpcleaner: https://updates.jenkins-ci.org/download/plugins/tmpcleaner/
在此处您将获得一个hpi文件。前往“管理Jenkins”->“管理插件”->“高级”,然后在此处上传hpi文件并重新启动jenkins。
如果您前往“管理节点”,您将立即看到差异。
由于我的jenkins安装在debian服务器上,我无法找到/ etc / default文件夹或jenkins文件,因此我无法理解大多数与此相关的答案。 如果有人知道/ tmp文件夹在哪里或如何为debian配置它,请在评论中让我知道。