我已经在我的 CentOS 机器上部署了Jenkins,Jenkins 运行了3天,但昨天出现了Disk space is too low. Only 1.019GB left.问题。我该怎么解决这个问题呢,它让我的主人离线了几个小时?
Disk space is too low. Only 1.019GB left.
sg2wtvxw1#
你可以很容易地从jenkins UI(我的版本是1.651.3)更改阈值:[]
此功能旨在防止在可用磁盘空间较低的从属设备上工作。降低门槛并不能解决一些作业在完成后没有正确清理的事实。取决于你正在构建的内容:1.确保您了解构建的磁盘输出是什么-如果可能的话-将输出限制为仅发生在作业工作区。使用workspace cleanup plugin清理工作区作为构建后步骤。1.如果进程必须将某些数据写入外部文件夹-请在构建后步骤中手动清理它们。
备选方案1-为每个作业配置一个新的从机(使用spot slaves -有许多插件与不同的云提供商集成,以便按需在飞行机器上进行配置)Alternative 2-在容器中运行构建。一旦构建完成,所有内容都将被丢弃
gev0vcfq2#
除了上述解决方案外,还有一种更“常见”的方法-直接从Linux机器中删除最大的空间消耗。您可以按照以下步骤操作:1.登录到Jenkins机器(Putty)
ls -lart
df -h
du -sh ./*/
du -a /etc/ | sort -n -r | head -n 10
通常./job/文件夹或./workspace/文件夹可以是最大的文件夹。请进入并删除根据您的需要(不要删除整个文件夹).rm -rf theFolderToDelete
./job/
./workspace/
rm -rf theFolderToDelete
ohfgkhjo3#
您可以通过丢弃旧版本来限制磁盘空间的减少。在项目配置中有一个复选框。
lnlaulya4#
我也有同样的问题。我的Jenkins版本是2.3,它的UI略有不同。把它放在这里是为了帮助别人。将两个磁盘空间阈值都增加到5GB解决了此问题。
arknldoa5#
这实际上是一个合理的问题,所以我不明白的downvotes,也许它属于超级用户或服务器故障。这是一个软警告阈值,而不是磁盘空间不足的硬限制。
Jenkins是一样的。结论是,对于许多小项目,可以减少称为hudson.diagnosis.HudsonHomeDiskUsageChecker.freeSpaceThreshold的system property。在说我没有测试过它,有一个免责声明,
hudson.diagnosis.HudsonHomeDiskUsageChecker.freeSpaceThreshold
无兼容性保证
一般来说,这些开关通常是实验性的,并且可以在不通知的情况下进行更改。如果你发现其中一些有用的,请提交一份工单,将其推广到官方功能。
lnxxn5zx6#
我有一个清理工作,具有以下构建步骤。你可以每天或每周安排一次。
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 /
txu3uszq7#
检查可用空间为 Jenkins Job:
*FREE_SPACE:需要可用空间(以 GB 为单位)。
FREE_SPACE
#!/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
Free space: (.*)
Free space: \1
Warning! (.*)
\1
axzmvihb8#
对于那些不知道垃圾桶在哪里的人,请从https://updates.jenkins-ci.org/download/plugins/tmpcleaner/下载tmpcleaner你会在这里得到一个hpi文件。转到管理Jenkins->管理插件->高级,然后在这里上传hpi文件并重新启动Jenkins如果转到管理节点,您可以立即看到差异。由于我的jenkins安装在一个debian服务器上,我不明白大多数与此相关的答案,因为我找不到/etc/default文件夹或jenkins文件。如果有人知道/tmp文件夹在哪里或者如何为debian配置它,请在评论中告诉我
7z5jn7bk9#
版本2.401.3->管理Jenkins -->节点-->节点监控。更改/tmp目录的磁盘阈值(& C)。您也可以设置“/"的阈值。
9条答案
按热度按时间sg2wtvxw1#
你可以很容易地从jenkins UI(我的版本是1.651.3)更改阈值:
[
]
更新:如何保证高磁盘空间
此功能旨在防止在可用磁盘空间较低的从属设备上工作。降低门槛并不能解决一些作业在完成后没有正确清理的事实。
取决于你正在构建的内容:
1.确保您了解构建的磁盘输出是什么-如果可能的话-将输出限制为仅发生在作业工作区。使用workspace cleanup plugin清理工作区作为构建后步骤。
1.如果进程必须将某些数据写入外部文件夹-请在构建后步骤中手动清理它们。
备选方案1-为每个作业配置一个新的从机(使用spot slaves -有许多插件与不同的云提供商集成,以便按需在飞行机器上进行配置)
Alternative 2-在容器中运行构建。一旦构建完成,所有内容都将被丢弃
gev0vcfq2#
除了上述解决方案外,还有一种更“常见”的方法-直接从Linux机器中删除最大的空间消耗。您可以按照以下步骤操作:
1.登录到Jenkins机器(Putty)
使用
ls -lart
列出隐藏文件夹,通常jenkin安装放在.jenkins/文件夹中[xxxxx ~]$ ls -lart
drwxrwxr-x 12 xxxx 4096 Feb 8 02:08 .jenkins/
1.列出文件夹空间
使用
df -h
显示磁盘空间在高级别du -sh ./*/
列出当前路径中每个子文件夹的总内存。du -a /etc/ | sort -n -r | head -n 10
将列出占用/etc/中磁盘空间的前10个目录1.删除旧版本或其他大型文件夹
通常
./job/
文件夹或./workspace/
文件夹可以是最大的文件夹。请进入并删除根据您的需要(不要删除整个文件夹).rm -rf theFolderToDelete
ohfgkhjo3#
您可以通过丢弃旧版本来限制磁盘空间的减少。在项目配置中有一个复选框。
lnlaulya4#
我也有同样的问题。我的Jenkins版本是2.3,它的UI略有不同。把它放在这里是为了帮助别人。将两个磁盘空间阈值都增加到5GB解决了此问题。
arknldoa5#
这实际上是一个合理的问题,所以我不明白的downvotes,也许它属于超级用户或服务器故障。这是一个软警告阈值,而不是磁盘空间不足的硬限制。
Jenkins是一样的。结论是,对于许多小项目,可以减少称为
hudson.diagnosis.HudsonHomeDiskUsageChecker.freeSpaceThreshold
的system property。在说我没有测试过它,有一个免责声明,
无兼容性保证
一般来说,这些开关通常是实验性的,并且可以在不通知的情况下进行更改。如果你发现其中一些有用的,请提交一份工单,将其推广到官方功能。
lnxxn5zx6#
我有一个清理工作,具有以下构建步骤。你可以每天或每周安排一次。
Execute system groovy script
构建步骤以清理旧作业:您需要安装Groovy插件。
Execute shell
构建步骤以清理缓存目录txu3uszq7#
检查可用空间为 Jenkins Job:
参数设置
*
FREE_SPACE
:需要可用空间(以 GB 为单位)。作业
插件
设置构建描述
构建后操作
*正则表达式:
Free space: (.*)
*说明:
Free space: \1
*构建失败的正则表达式:
Warning! (.*)
*构建失败说明:
\1
axzmvihb8#
对于那些不知道垃圾桶在哪里的人,请从https://updates.jenkins-ci.org/download/plugins/tmpcleaner/下载tmpcleaner
你会在这里得到一个hpi文件。转到管理Jenkins->管理插件->高级,然后在这里上传hpi文件并重新启动Jenkins
如果转到管理节点,您可以立即看到差异。
由于我的jenkins安装在一个debian服务器上,我不明白大多数与此相关的答案,因为我找不到/etc/default文件夹或jenkins文件。如果有人知道/tmp文件夹在哪里或者如何为debian配置它,请在评论中告诉我
7z5jn7bk9#
版本2.401.3
->管理Jenkins -->节点-->节点监控。更改/tmp目录的磁盘阈值(& C)。您也可以设置“/"的阈值。