记一次 Jenkins 构建内存溢出的解决方案

目录

    • 一、问题描述
    • 二、解决方案

一、问题描述

Jenkins 在公司测试环境中用了有一段时间了,今天早上研发同事构建时出现了如下错误:

在这里插入图片描述

ERROR: Maven JVM terminated unexpectedly with exit code 137

看了一下 Jenkins 的构建输出日志,很明显这是服务器内存不足而导致的内存溢出现象,针对这个问题的解决方案实际上很简单,要么增加服务器内存、要么配置 JVM 的堆大小、要么配置服务器 swap 分区。由于我们公司使用的是腾讯云服务器,默认是没有开启 swap 的,因此可以暂时使用虚拟内存进行设置 swap 分区,从而避免内存溢出的现象。

二、解决方案

1、新建虚拟内存磁盘卷

mkdir /data/swap

2、设置 swap 大小

dd if=/dev/zero of=/data/swap/swapadd bs=1024M count=4

# if:从哪取
# of:取到哪
# bs:块大小
# count:共取多少(1024*4=4096M=4G)

3、初始化

mkswap /data/swap/swapadd

4、启用 swap

swapon /data/swap/swapadd

5、查看 swap 分区大小

# free -m
              total        used        free      shared  buff/cache   available
Swap:          4095         171        3924

再次进行 Jenkins 构建:

在这里插入图片描述

到此,Jenkins 构建内存溢出的问题已经解决。最后要提醒的是,对于像 CICD 这种自动化部署应用,比较消耗内存,因此在进行部署前应先规划好服务器配置,如内核、内存、磁盘等。

你可能感兴趣的:(FAQ,运维,linux,java,git,服务器)