找出 Gitlab 问题出在哪里的最佳方法是什么(仅在 Ubuntu Plesk Onyx 服务器上使用过的应用程序),每次我查找/proc/user_beancounters
numtcpsock 值时都处于正常状态(< 100),有时某些 Gitlab 进程似乎超过numtcpsock 限制(3000)超过 2300 次,所以虚拟服务器(OpenVZ)崩溃了?
我已经限制了 redis 和 postgresql 连接/etc/gitlab/gitlab.rb
:
postgresql['shared_buffers'] = "30MB"
postgresql['max_connections'] = 100
redis['maxclients'] = "500"
redis['tcp_timeout'] = "20"
redis['tcp_keepalive'] = "10"
sudo gitlab-ctl reconfigure && sudo gitlab-ctl restart
但这似乎并不能防止服务器崩溃。我需要一种方法来解决这个问题。你有什么想法吗?
编辑:
该服务器仅由大约 3-5 人使用netstat -pnt | wc -l
返回大约 49 个 tcp 连接。cat /proc/user_beancounters
numtcpsock
目前33。除了我在本地 IP 上侦听的 ssh 连接之外,所有这些连接。
这里有一些例子:
tcp 0 0 127.0.0.1:47280 127.0.0.1:9168 TIME_WAIT -
tcp 0 0 127.0.0.1:9229 127.0.0.1:34810 TIME_WAIT -
tcp 0 0 127.0.0.1:9100 127.0.0.1:45758 TIME_WAIT -
tcp 0 0 127.0.0.1:56264 127.0.0.1:8082 TIME_WAIT -
tcp 0 0 127.0.0.1:9090 127.0.0.1:43670 TIME_WAIT -
tcp 0 0 127.0.0.1:9121 127.0.0.1:41636 TIME_WAIT -
tcp 0 0 127.0.0.1:9236 127.0.0.1:42842 TIME_WAIT -
tcp 0 0 127.0.0.1:9090 127.0.0.1:43926 TIME_WAIT -
tcp 0 0 127.0.0.1:9090 127.0.0.1:44538 TIME_WAIT -
带有许多监狱(ssh 等)的防火墙和 fail2ban 在服务器上也处于活动状态。