一、问题说明

我们搭建好GitLab服务后,在打开GitLab地址访问时,如果服务器的硬件配置不够好,界面可能会出现502的报错,如下图:

gitlab无法启动 Failed creating java gitlab启动502_服务器


二、查看系统状况

使用top命令查看系统状况。

如果出现如下图一般,GitLab占用内存和CPU过高(user为gitgitlab-+的全是gitlab的东西),导致服务器崩溃,则可以考虑通过启用swap交换分区去解决,具体操作详见下文。

gitlab无法启动 Failed creating java gitlab启动502_git_02

三、设置Swap(交换)分区

1、查看内存情况

free -h

由下图可以看出,Swap相关数据为0,服务器并没有设置交换分区 

gitlab无法启动 Failed creating java gitlab启动502_git_03

2、创建文件

创建大小为2GB的交换文件,大小可按你的实际需求去创建。命令如下:

# if=文件名,即指定源文件;of=文件名,即指定目的文件,自行定义
dd if=/dev/zero of=/root/swap bs=1M count=2048

gitlab无法启动 Failed creating java gitlab启动502_文件名_04

3、建立交换分区

# 在/root/swap文件上创建交换分区,即格式化为交换分区文件
mkswap /root/swap

gitlab无法启动 Failed creating java gitlab启动502_git_05

4、启用交换分区

swapon /root/swap

gitlab无法启动 Failed creating java gitlab启动502_文件名_06

提示“swapon: /root/swap: insecure permissions 0644, 0600 suggested.”,建议把swap设置成644或600权限。

可使用以下命令进行设置(可选)

# 将swap设置为600权限,即只有拥有者(我这是root)才有读写权限
chmod 600 /root/swap

5、验证交换分区启用

gitlab无法启动 Failed creating java gitlab启动502_服务器_07

由上图可见,已设置2G的Swap分区。

也可以使用以下命令去验证:

swapon -s
# 或者
cat /proc/swaps

6、设置开机自启动(可选)

打开 /etc/fstab 文件(vi /etc/fstab),在文件最后添加以下内容并保存

/root/swap swap swap defaults 0 0

或者直接命令行输入

echo “/root/swap swap swap defaults 0 0” >> /etc/fstab

到此,我们就完成了Swap分区设置。可以继续通过top命令查看cpu、内存以及gitlab相关进程情况,看是否已经解决问题。

若重新打开GitLab地址进行访问,出现以下界面,则表示访问已正常。

gitlab无法启动 Failed creating java gitlab启动502_gitlab_08

x