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

timo-nbktp 1年前 ⋅ 3283 阅读

一、问题描述

Jenkins 在腾讯云服务器中用了有一段时间了,今天早上构建时出现了如下错误:

ERROR: Maven JVM terminated unexpectedly with exit code 137

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

二、解决方案

1、新建虚拟内存磁盘卷

mkdir /data/swap

2、设置 swap 大小

注意:这里我们bs(buff size)给的1024M, bs大小可以根据free -h命令查看的buff/cache的大小来决定,如果给大了可能会报dd: memory exhausted by input buffer of size 1073741824 bytes (1.0 GiB) 

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 这种自动化部署应用,比较消耗内存,因此在进行部署前应先规划好服务器配置,如内核、内存、磁盘等。

 

--end--

 

 

版权 本着开源共享、共同学习的精神,本文转载自 https://blog.csdn.net/IT_ZRS/article/details/116264736 , 如果侵权之处,请联系博主进行删除,谢谢~