赞
踩
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
FilenameTypeSizeUsedPriority
启用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
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。