美文网首页What is SoftWare Test
使用Jenkins持续集成的一些小经验

使用Jenkins持续集成的一些小经验

作者: Rethink | 来源:发表于2020-06-07 17:34 被阅读0次

    持续更新中...

    修改 JVM 的内存配置

    Jenkins 启动方式有两种方式,一种是以 Jdk Jar 方式运行,一种是将 War 包放在 Tomcat 下运行。不管何种方式运行,都会存在一个问题就是,默认 JVM 内存分配太少,导致启动或者运行一段时间后内存溢出报错 java.lang.OutOfMemoryError: PermGen spac。所以,需要在启动前修改配置文件中的JVM 内存配置。

     set JAVA_OPTS=
     -server 
     -Xms5000M 
     -Xmx5000M  
     -Xss512k 
     -XX:+AggressiveOpts 
     -XX:+UseBiasedLocking 
     -XX:PermSize=256M 
     -XX:MaxPermSize=512M 
     -XX:+DisableExplicitGC 
     -XX:MaxTenuringThreshold=31 
     -XX:+UseConcMarkSweepGC 
     -XX:+UseParNewGC  
     -XX:+CMSParallelRemarkEnabled 
     -XX:+UseCMSCompactAtFullCollection 
     -XX:LargePageSizeInBytes=128m  
     -XX:+UseFastAccessorMethods 
     -XX:+UseCMSInitiatingOccupancyOnly 
     -Djava.awt.headless=true
    

    这里的几个 JVM 参数含义如下:
    -Xms: 使用的最小堆内存大小
    -Xmx: 使用的最大堆内存大小
    -XX:PermSize: 内存的永久保存区域大小
    -XX:MaxPermSize: 最大内存的永久保存区域大小这几个参数也不是配置越大越好,具体要根据所在机器实际内存和使用大小配置。

    配置优化减少磁盘空间占用

    Job 构建历史较多时,如果没有配置好清理策略的话,会导致占用大量磁盘空间,最终可能会因磁盘空间不够而导致构建失败。并且在加载项目配置时,Jenkins也需要花费时间分析历史构建记录,页面加载的耗时会相应的增加。

    丢弃旧的构建配置

    如上图,配置最大保持 2 天之内的构建,如果超过 2 天的构建,则会在Job 执行前被清理掉,同时配置了最大保持构建数量为 30 个,意思就是如果 2 天内构建次数如果超过 30 次,则最多保留最近执行的 30 个构建。

    使用Disk Uasge插件

    不建议,会导致服务器卡顿.

    定时清理tomcat日志

    默认情况下,tomcat每天都会生成新的日志文件,且某些情况下,产生的日志文件体积会非常大,如果长期不清理,日志文件会越来越多,占用很多磁盘空间。

    目前的处理方法是在Jenkins新建了一个定时任务,专门用来删除tomcat产生的日志文件。

    设置构建超时时间

    有些 Job 在执行构建时,由于某些原因导致构建挂起,耗时比较长,而这些长时间挂起的 Job 会导致 Jenkins 内存占用比较大,性能下降,严重的会直接导致 Jenkins 挂掉。所以,我们需要设置构建超时时间来预防这种事情发生,一旦超过一定的时间,要让 Job 自动停止掉,如下:

    配置视图分类管理 Job

    Jenkins 默认视图为 ALL ,即显示所有 Job 列表,如果 Job 比较多的话,找某个 Job 会不太方便,这时候可以通过新建视图的方式,对 Job 进行分类管理,如下,我新建了 “List View” 类型视图 “park”,然后再选择该视图所关联的 Job 就可以了。

    image

    设置全局属性

    适当设置全局属性,可以避免在 Job 中重复写一些固定值,例如输出日志地址、接口请求地址等等,而且当固定值需要修改时,只需要修改一次即可,不用去每个 Job 里面修改,方便维护。设置入口为: 系统管理 -> 系统配置-> 全局属性-> Environment variables ,如下图: image

    统一管理脚本

    需要安装Managed script 插件,该插件是为了在管理文件时创建 Script 脚本文件,然后在 Job 中配置直接使用,方便脚本的统一管理和维护。插件安装完成后,进入“系统管理” —> “Managed files” ,点击 “Add a new Config” ,并选择 “Groovy file” 类型,创建一个新的 Groovy 脚本文件,然后输入我们要执行的脚本代码,如下:

    这里的脚本可以使用一些 Jenkins 系统的环境变量参数, 如 上图中的DATA_UPLOAD_PATH变量就是在全局属性中设置的。

    创建完毕后,我们在 Job 中构建处选择 “Execute managed script” 就可以使用这些脚本了。

    轻量备份

    使用ThinBackup 插件,允许我们对Jenkins配置信息进行全量或增量备份,由于插件不会保存构建历史和构建工件,所备份过程更为快捷,并且无需关闭Jenkins服务器。

    还原备份: image

    相关文章

      网友评论

        本文标题:使用Jenkins持续集成的一些小经验

        本文链接:https://www.haomeiwen.com/subject/orcwahtx.html