GitLab常用命令

sudo gitlab-ctl start    # 启动所有 gitlab 组件;
sudo gitlab-ctl stop        # 停止所有 gitlab 组件;
sudo gitlab-ctl restart        # 重启所有 gitlab 组件;
sudo gitlab-ctl status        # 查看服务状态;
sudo gitlab-ctl reconfigure        # 重新配置更新
sudo vim /etc/gitlab/gitlab.rb        # 修改默认的配置文件;
gitlab-rake gitlab:check SANITIZE=true --trace    # 检查gitlab;
sudo gitlab-ctl tail        # 查看日志;


解决思路:

第一种问题:gitlab占用内存太多,导致服务器崩溃。

1. 首先确认部署gitlab机器硬件是否满足条件:cpu:2核和内存:8g (最低性能要求),如果不满足,启用swap分区。

swap介绍:

在系统的物理内存不够用的时候,把物理内存中的一部分空间释放出来,以供当前运行的程序使用,那边被释放的空间可能来自一些很长时间没有什么操作的程序,这些被释放的空间被临时保存到swap分区中,等到那些程序要运行时,再从swap分区中恢复保存的数据到内存中

swap查看

大部分服务器默认swap分区是没有启动的,查看使用:free,如下显示为0

$ free
              total        used        free      shared  buff/cache   available
Mem:      131550920     2172820   122695732        2052     6682368   128322520
Swap:             0           0           0

也可以通过cat /proc/swap查看

$ cat /proc/swaps
Filename				Type		Size	Used	Priority

启用swap分区

创建swap大小为bs*count=4294971392(4G)

第一步:创建一个大小为4gM的文件:

#dd if=/dev/zero of=/mnt/swap bs=1024 count=262144

/dev/null,外号叫无底洞,你可以向它输出任何数据,它通吃,并且不会撑着!

/dev/zero,是一个输入设备,你可你用它来初始化文件。该设备无穷尽地提供0,可以使用任何你需要的数目——设备提供的要多的多。他可以用于向设备或文件写入字符串0。

/dev/null——它是空设备,也称为位桶(bit bucket)。任何写入它的输出都会被抛弃。如果不想让消息以标准输出显示或写入文件,那么可以将消息重定向到位桶。

第二步:把这个文件变成swap文件:

# mkswap /mnt/swap

第三步:启用这个swap文件:

# swapon /mnt/swap

第四步:编辑/etc/fstab文件,使在每次开机时自动加载swap文件:

vim /etc/fstab

/mnt/swap    swap    swap    default   0 0

第五步:查看vm.swappiness中数值是否为0,如果为0,则调整为60

# vim /etc/sysctl.conf

vm.swappiness = 60

内核参数vm.swappiness控制换出运行时内存的相对权重,参数值大小对如何使用swap分区有很大联系。值越大,表示越积极使用swap分区,越小表示越积极使用物理内存。默认值swappiness=60,表示内存使用率超过100-60=40%时开始使用交换分区。swappiness=0的时候表示最大限度使用物理内存,然后才是 swap空间;swappiness=100的时候表示积极使用swap分区,并把内存上的数据及时搬运到swap空间。(网上有的说,对于3.5以后的内核和RedHat 2.6.32之后的内核,设置为0会禁止使用swap,从而引发out of memory,这种情况可以设置为1。)

第六步:查看配置情况

# free

total        used        free      shared  buff/cache   available
Mem:      131550920     2177704   122356472        2052     7016744   128317728
Swap:       4194304           0     4194304

启动完成swap之后,gitlab的web访问速度会提升不少。

2. 检查gitlab是否是使用8080端口,且8080端口是否被抢占使用(大部分都是改原因导致)

修改gitlab的默认端口

>>> vim  /etc/gitlab/gitlab.rb

# 大概在240行左右
unicorn['listen'] = '127.0.0.1'
unicorn['port'] = 8181

# 每次重新配置,都需要执行sudo gitlab-ctl reconfigure 
>>> sudo gitlab-ctl reconfigure

3. 检查gitlab的状态,查看nginx日志,查看进程状态,在做判断。

使用gitlab-ctl status命令查看gitlab的状态

>>> gitlab-ctl status
run: logrotate: (pid 21402) 86s; run: log: (pid 1209) 3957915s
run: nginx: (pid 21457) 85s; run: log: (pid 1207) 3957915s
run: postgresql: (pid 22444) 44s; run: log: (pid 1201) 3957915s
run: redis: (pid 21790) 73s; run: log: (pid 1200) 3957915s
run: sidekiq: (pid 22443) 44s; run: log: (pid 1205) 3957915s
run: unicorn: (pid 1096) 55171s, got TERM; run: log: (pid 1202) 3957915s

查看gitlab的错误日志记录

>>> cd /var/log/gitlab/nginx/
>>> cat cat gitlab_error.log

2018/08/07 03:12:32 [error] 27179#0: *56 upstream prematurely closed connection while reading response header from upstream, client: 192.168.3.240, server: 192.168.3.99, request: "GET / HTTP/1.1", upstream: "http://unix:/var/opt/gitlab/gitlab-rails/sockets/gitlab.socket:/", host: "192.168.3.99:12345"
2018/08/07 03:17:52 [error] 21461#0: *1 connect() to unix:/var/opt/gitlab/gitlab-rails/sockets/gitlab.socket failed (111: Connection refused) while connecting to upstream, client: 192.168.3.221, server: 192.168.3.99, request: "GET / HTTP/1.1", upstream: "http://unix:/var/opt/gitlab/gitlab-rails/sockets/gitlab.socket:/", host: "192.168.3.99:12345"
2018/08/07 03:21:37 [error] 21462#0: *3 connect() to unix:/var/opt/gitlab/gitlab-rails/sockets/gitlab.socket failed (111: Connection refused) while connecting to upstream, client: 192.168.3.221, server: 192.168.3.99, request: "GET / HTTP/1.1", upstream: "http://unix:/var/opt/gitlab/gitlab-rails/sockets/gitlab.socket:/", host: "192.168.3.99:12345"

使用命令:gitlab-ctl tail 用来获取详细信息

>>> gitlab-ctl tail 


==> /var/log/gitlab/postgresql/current <==
2019-12-24_10:30:01.87878 FATAL:  could not write lock file "postmaster.pid": No space left on device

==> /var/log/gitlab/unicorn/current <==
2019-12-24_10:30:02.15926 master failed to start, check stderr log for details

==> /var/log/gitlab/postgresql/current <==
2019-12-24_10:30:02.90281 FATAL:  could not write lock file "postmaster.pid": No space left on devic

比如这里提示错误:could not write lock file "postmaster.pid": No space left on device,告诉我们由于电脑硬盘没有空余存储空间来存储postmaster.pid文件,导致启动失败。

gitlab相关操作

启动服务:gitlab -ctl start

查看状态:gitlab -ctl status

停掉服务:gitlab -ctl stop

重启服务:gitlab -ctl restart

让配置生效:gitlab -ctl reconfigure

参考文章:
https://stackoverflow.com/questions/50598018/gitlab-502-error-and-unicorn-always-restart

本文地址: http://chenxm.cc/article/708.html
版权声明: 本文为原创文章,版权归  陈新明  所有,欢迎分享本文,转载请保留出处!
上一篇: flask 源码解析:上下文
下一篇: vmware中Ubuntu解决xshell连接不上问题
发表评论

还没有留言,还不快点抢沙发?