一、首先看看配置文件/etc/gitlab/gitlab.rb 中的端口号是否被占用
二、另外一个原因是gitlab占用内存太多,导致服务器崩溃
如果服务器内存小于2G,是启动不了Gitlab的,会报502错误。
内存实在扩充不了只能开启swap分区了。
swap是干嘛的?
在Linux下,SWAP的作用类似Windows系统下的“虚拟内存”。当物理内存不足时,拿出部分硬盘空间当SWAP分区(虚拟成内存)使用,从而解决内存容量不足的情况。
SWAP意思是交换,顾名思义,当某进程向OS请求内存发现不足时,OS会把内存中暂时不用的数据交换出去,放在SWAP分区中,这个过程称为SWAP OUT。当某进程又需要这些数据且OS发现还有空闲物理内存时,又会把SWAP分区中的数据交换回物理内存中,这个过程称为SWAP IN。
当然,swap大小是有上限的,一旦swap使用完,操作系统会触发OOM-Killer机制,把消耗内存最多的进程kill掉以释放内存。
通过创建swap分区解决Gitlab 502错误
- 查看swap分区是否启动(无)
cat /proc/swaps
如果没显示则创建
dd if=/dev/zero of=/data/swap bs=512 count=8388616
创建swap大小为bs*count=4294971392(4G);
- 通过mkswap命令将上面新建出的文件做成swap分区
mkswap /data/swap
- 查看内核参数vm.swappiness中的数值是否为0,如果为0则根据实际需要调整成60
#查看:
cat /proc/sys/vm/swappiness
#设置:
sysctl -w vm.swappiness=60
#若想永久修改,则编辑/etc/sysctl.conf文件,改文件中有vm.swappiness变量配置,默认为0
- 启用分区
swapon /data/swap
echo “/data/swap swap swap defaults 0 0” >> /etc/fstab
再次使用cat /proc/swaps 查看swap分区是否启动
- 重启 GitLab
#停止 GitLab
sudo gitlab-ctl stop
#启动 GitLab
sudo gitlab-ctl start
#重启 GitLab
sudo gitlab-ctl restart