小周啊 2018-11-02 09:51:57 浏览4364nginx
此次排错过程主要是思路,视野打开后会以为豁然开朗,原来这实际上是个小问题[尴尬]。git
一、没注重应用启动的各服务及其用途,只会简单查看 status;sql
二、看到错误第一时间想到的是 Baidu(没其余意思),找找 logpath 先看日志很差吗?ruby
三、未认识到服务之间的关联关系(好比 postgresql 与 unicorn 之间),前面一直知道 unicorn 启动后没正常监听到端口,可是日志并没啥特别信息(嗯,多是由于看错了文件)[苦笑]服务器
日志路径 : /var/log/gitlab/unicorn/unicorn_stderr.log运维
PG::ConnectionBad: could not connect to server: No such file or directory Is the server running locally and accepting connections on Unix domain socket "/var/opt/gitlab/postgresql/.s.PGSQL.5432"? /opt/gitlab/embedded/lib/ruby/gems/2.3.0/gems/activerecord-4.2.10/lib/active_record/connection_adapters/postgresql_adapter.rb:651:in `initialize' /opt/gitlab/embedded/lib/ruby/gems/2.3.0/gems/activerecord-4.2.10/lib/active_record/connection_adapters/postgresql_adapter.rb:651:in `new' /opt/gitlab/embedded/lib/ruby/gems/2.3.0/gems/activerecord-4.2.10/lib/active_record/connection_adapters/postgresql_adapter.rb:651:in `connect' /opt/gitlab/embedded/lib/ruby/gems/2.3.0/gems/activerecord-4.2.10/lib/active_record/connection_adapters/postgresql_adapter.rb:242:in `initialize' /opt/gitlab/embedded/lib/ruby/gems/2.3.0/gems/activerecord-4.2.10/lib/active_record/connection_adapters/postgresql_adapter.rb:44:in `new' /opt/gitlab/embedded/lib/ruby/gems/2.3.0/gems/activerecord-4.2.10/lib/active_record/connection_adapters/postgresql_adapter.rb:44:in `postgresql_connection' ··· ··· ··· ···
信息显示是由于连不上PG,因此启动 postgresql 后重启便可正常(嗯,是酱)。。dom
down: postgresql: 0s, normally up, want up; run: log: (pid 623) 15816094s
经过 PG 的日志路径 : /var/log/gitlab/postgresql/current 能够查看到以下信息socket
2018-11-01_08:18:09.49669 FATAL: could not map anonymous shared memory: Cannot allocate memory 2018-11-01_08:18:09.49671 HINT: This error usually means that PostgreSQL's request for a shared memory segment exceeded available memory, swap space, or huge pages. To reduce the request size (currently 4292984832 bytes), reduce PostgreSQL's shared memory usage, perhaps by reducing shared_buffers or max_connections. 2018-11-01_08:18:09.49671 LOG: database system is shut down
也能够经过命令 `gitlab-ctl tail postgresql`,获得同样的信息,因而能够肯定问题。。oop
This error usually means that PostgreSQL's request for a shared memory segment exceeded available memory, swap space, or huge pages. To reduce the request size (currently 4292984832 bytes), reduce PostgreSQL's shared memory usage, perhaps by reducing shared_buffers or max_connections. 2018-11-01_07:52:06.63024 LOG: database system is shut down
因而在配置文件中对 postgresql 的 shared_buffers 和 max_connections 两项进行了限制gitlab
[root@V2 ~]# cat /etc/gitlab/gitlab.rb |grep -v ^$ |grep -v ^# external_url 'http://xxx.xxx.xxx.xxx.xxx:8090' unicorn['worker_timeout'] = 60 unicorn['worker_processes'] = 3 unicorn['listen'] = 'xxx.xxx.xxx.xxx.xxx' unicorn['port'] = 8870 postgresql['enable'] = true postgresql['data_dir'] = "/var/opt/gitlab/postgresql/data" postgresql['shared_buffers'] = "256MB" # ! **recommend value is 1/4 of total RAM, up to 14GB.** postgresql['max_connections'] = 200 nginx['listen_addresses'] = ['*'] nginx['listen_port'] = 8090
配置完成保存,以后更新配置,重启应用便可。
gitlab-ctl reconfigure # 更新配置 gitlab-ctl restart # 重启应用 gitlab-ctl status # 查看服务状态