Gitea sorry, too many clients already 错误排查

Gitea 在运行的时候提示错误:

gitea docker An error occurred:

ReadBy, pq: sorry, too many clients already (53300)

确认连接数

在服务器上运行命令: docker exec -it gitea-db psql -U gitea -d gitea 进入容器。

然后运行命令: SHOW max_connections; 来查看当前的连接数。

根据上面的输出可以看到数据库能接受的连接数为 200。

psql (18.6 (Debian 18.6-1.pgdg13+2))
Type "help" for help.

gitea=# SHOW max_connections;
 max_connections 
-----------------
 200
(1 row)

gitea=# 

修改策略

可以同时修改 Gitea 容器数据库中允许的连接数,增加更多和修改 Gitea 的配置文件限制 Gitea 可以使用的连接数。

在容器配置文件中,添加下面的内容:

    command:
      - postgres
      - -c
      - max_connections=200

新增上面的连接数配置。

Gitea 中配置可用的最大连接数:

      GITEA__database__MAX_OPEN_CONNS: 50
      GITEA__database__MAX_IDLE_CONNS: 10
      GITEA__database__CONN_MAX_LIFETIME: 300s

完成上面配置修改后,需要重启容器。

重启容器的命令为:

docker compose up -d --force-recreate gitea
docker compose up -d --force-recreate database

Gitea 和数据库的实例都需要重启。

上面的排查过程是在 AI 的指引下一步一步完成,有 AI 看 DevOps 的工作可能真要失业了。

AI 提供的解决方案足够清晰,按照完整的路径很容易就能完成服务器的修改和故障排查。