Jenkins服务器磁盘空间管理策略

Jenkins在帮助我们自动化构建服务的同时也在消耗服务器的磁盘空间,试想如果构建的项目个数很多,而Jenkins 服务器磁盘空间又不是非常大的话,每隔一段时间磁盘空间就会爆满导致Jenkins出现磁盘空间不足无法构建的后果。这时候我们就需要进行一定的手工干预才能恢复Jenkins的正常运作。本文基于Windows操作系统,结合Jenkins 的相关特性解决上述问题。

一、手工删除构建记录

这是最基本的一种操作方法,通过直接物理删除构建记录进行磁盘空间管理。手工删除构建记录方式如下:

  1. 进入Jenkins根目录,Windows下默认位于当前用户目录中的.jenkins文件夹。
  2. 手工删除构建记录,构建记录位于.jenkins\jobs\XXX\builds中(其中XXX为具体项目名称),以时间戳方式进行组织。根据需要直接删除对应的构建历史即可。

二、转移磁盘空间

转移磁盘空间的思路是通过改变Jenkins的默认主目录达到把构建记录转移到其他磁盘的方式。以Windows系统为例,通常用户目录所在的磁盘会安装很多软件导致磁盘空间处于不充裕的状态,而其他磁盘空间则可以进行动态划分和管理。如果能把Jenkins构建记录存放到相对较大而又可以动态管理的空间中无疑会在很大程度上解决磁盘空间不足的问题。具体操作方式也非常简单:

  1. 创建Jenkins根目录环境变量JENKINS_HOME,将该环境变量映射到具体某个工作目录
  2. 重启Jenkins即可

当然,转移磁盘空间只是一种相对优化的策略,如果构建需求量非常巨大,该策略通常也是治标不治本,所以我们还有第三种策略。

三、 自动丢弃构建历史数据

一次构建包含两方面的产物:构建记录和构建工件。构建记录是一种跟踪、分析和反馈的依据,具有保存价值;而已经过时的构建工件则通常可以直接丢弃。基于以上思路,Jenkins为我们提供了“丢弃旧的构建”配置功能,通过进行合理配置即可达到保存构建记录丢弃构建工件的效果,配置方式如下:

上例中,通过限制“发布包最大保留#个构建”就可以自动确保该项目对应的构建结果中只保存最近若干次的构建工件,从而优化磁盘空间的使用效率。

四、小结

通过上述三种策略,我们可以在实际工作中选择其中的一种或多种,确保Jenkins服务的稳定。

时间: 2024-07-30 09:27:47

Jenkins服务器磁盘空间管理策略的相关文章

Windows Server 服务器磁盘空间不足怎么办

用户的Lync服务器只有80G空间,D盘最近刚加的,今天发现C盘大小竟然就剩几百MB了,桌面上看到有些Log文件,全部删除了,好不容易腾出三个G的空间,起码今天下班之前不会出现什么大的问题,我跟用户说你们加磁盘空间吧,用户的意思就是不行,你得给我把空间删除出来...说干就干 ===解决方法 1)我在C盘中Ctrl+A,查看属性发现C盘其实才占用了47.7GB,算上剩余的3.57GB,一共51GB 剩余将近30GB的空间被什么占用了... 2)计算机属性---更改设置---高级---性能设置 这个

ZFS磁盘空间管理(分配、释放原理)

原理概述 一个文件系统的空间管理,常见的技术大致有两种,bitmap和tree方式. bitmap是将文件系统所有管辖的空间细化成block(windows叫cluster),每一个block对应一个二进制位,两种状态分别表示自由/已分配.将这些二进制位集合在一起,就是bitmap.当需要分配空间时,在bitmap中查找连续的自由位,分配后,再置成已分配就可以了:释放时,将对应位置为可分配即可. tree方式是以extent的记录来描述自由/已分配空间的状态,如果以表示自由空间的tree来说,有

lvm实现服务器磁盘空间合并

1    LVM实现将2块磁盘总空间“合二为一”并挂载到同一目录 1.1   磁盘分区 首先查看磁盘信息,对未分区的磁盘进行分区处理(选择你要合并的盘,这里是对vdb.vdc). 如上图,可以看出有5块盘没有分区,选择dev/vdb进行分区操作,具体操作如下: 输入 p,然后依次输入下图所示: 最后查看分区结果,如图:  /dev/vdc盘重复上述操作即可. 1.2   创建物理卷 首先检查LVM安装了没有,使用 yum list installed | grep lvm 看安装了没有,如果没有

服务器磁盘空间扩容整理 pv vg lv resize2fs

温馨提示: PV(physical volume)即物理卷,就是物理磁盘,可以通过fdisk -l 查看操作系统有几块硬盘 VG(volume group)即卷组,就是一组物理磁盘的组合,里面可以有一块硬盘也可以有多块硬盘 LV(logical volume)及逻辑卷,就是在VG(指定的物理磁盘组)里面划分出来的 可以说成是PV就是硬盘,而VG就是管理硬盘的操作系统,而LV就是操作系统分出来的各个分区. PV->VG->LV->  文件系统使用(挂载到某个目录) 概述: 此linux(C

通过SSIS监控远程服务器磁盘空间并发送邮件报警

本文直接参考了博客园软件人生的文章操作的,写在这里只为做个记录. 到公司这边先把两个报表服务器接收了. 为防止宕机,部署个磁盘警告的SSIS包. Step 1 建立两个变量来接收和写入磁盘容量 Step 2 创建 WMI和SMTP 连接管理器 Step 3 拖个WMI Data Reader Task,并进行配置 注意,几乎每个选项都要改 SELECT FreeSpace FROM Win32_LogicalDisk where DriveType= 3 and DeviceID='C:' St

使用zabbix API估算服务器磁盘空间可用天数

代码github位置. 主要功能:获取zabbix某个分组下的所有机器,计算这些机器的磁盘剩余空间按照"自然"增长还可以使用多少天. 主要流程: 获取某个group下所有机器.     def host_get_by_groupid(self,groupid):         data = json.dumps(                 {                     "jsonrpc": "2.0",           

linux监测程序、磁盘空间管理,压缩数据及归档数据

ps -ef 显示所有进程,以完整的格式输出kill PID 通过进程号杀掉进程killall http* 结束所有http开头的进程 挂载文件系统:mount -t type device directory -t 参数指定了磁盘被格式化的文件系统类型.vfat: Windows 长文件系统.ntfs: Windows NT.XP.Vista及Win7中广泛使用的高级文件系统.iso9660: 标准CD-ROM文件系统. 卸载文件系统:umount [directory | device]例子

2014年12月18日:CoreOS 服务器磁盘空间不够

下列方法比较粗暴,慎重使用,我的是实验环境. 今天想试试 Docker,结果发现几乎所有命令都不能工作了.经过调查,发现是 Docker 的镜像和 btrfs 目录占用了大部分的空间.于是先删除了 Docker 的镜像 sudo rm /var/lib/docker/containers.再接下来,删除 btrfs 占用的空间 #!/bin/bash for i in `sudo ls /var/lib/docker/btrfs/subvolumes` do echo "Deleting $i&

liunx磁盘配额管理

作为运维人员,很多时候我们需要对用户使用磁盘的空间进行限定,比如用户家目录的空间使用限制,邮箱空间使用限制,共享磁盘空间的使用限制,甚至说云盘空间,都需要给每个用户做相应的空间使用限制.否则,服务器磁盘空间就无法进行管理了.要想使用配额首先必须明白两个问题,第一,就是系统内核必须支持配额功能:第二,就是配额只能作用于磁盘分区上:所以我们要想使用配额,就必须先行准备这两大条件. 一.环境检查   第一步:检查当前系统是否支持配额功能: grep CONFIG_QUOTA /boot/config-