一个很奇怪的自部署 gitea 首页冷加载 慢的问题

28 天前
 lymanbernadette6
gitea.db --> 大小在 150M 左右

前面套了一个 Nginx:
```
server {
listen 443 ssl http2;
server_name git;

access_log /dev/null;

ssl_certificate x;
ssl_certificate_key x
ssl_trusted_certificate x;

ssl_session_timeout 5m;
ssl_session_cache shared:MozSSL:10m;
ssl_dhparam /etc/ssl/dhparam.pem;
ssl_protocols TLSv1.1 TLSv1.2;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
ssl_prefer_server_ciphers off;
ssl_stapling on;
ssl_stapling_verify on;
client_max_body_size 300m;

error_page 497 https://$host:$server_port$request_uri;

location / {
proxy_pass http://localhost:8888;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;


# http://nginx.org/en/docs/http/websocket.html
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
# proxy_redirect off;
}
}
```
查看 gitea 日志如下: 提示 slow route

```
gitea | 2025/04/10 18:23:15 ...eb/routing/logger.go:102:func1() [I] router: completed GET /favicon.ico for 172.27.0.1:56048, 301 Moved Permanently in 11.8ms @ misc/misc.go:46(web.Routes.StaticRedirect)
gitea | 2025/04/10 18:23:19 ...eb/routing/logger.go:102:func1() [I] router: completed GET /user/login?redirect_to=%2f for 172.27.0.1:45376, 200 OK in 80.6ms @ auth/auth.go:179(auth.SignIn)
gitea | 2025/04/10 18:23:21 ...eb/routing/logger.go:102:func1() [I] router: completed POST /user/login for 172.27.0.1:45382, 303 See Other in 350.8ms @ auth/auth.go:192(auth.SignInPost)
gitea | 2025/04/10 18:23:25 ...eb/routing/logger.go:68:func1() [W] router: slow GET / for 172.27.0.1:45396, elapsed 3856.4ms @ web/home.go:32(web.Home)


gitea | 2025/04/10 18:23:52 ...eb/routing/logger.go:102:func1() [I] router: completed GET / for 172.27.0.1:45396, 200 OK in 30985.7ms @ web/home.go:32(web.Home)
```
gitea 配置基本为默认。

不知道有没有遇到相同情况的 V 友。看了一圈没看出问题所在。。
1110 次点击
所在节点    NAS
8 条回复
Pethidine
28 天前
没遇到过,我的首页很快,但是因为有几千个仓库,而且每天大量更新,所以登录后的首页会加载个几秒
moyuge
27 天前
升级最新版本 老版本没加索引导致很慢 数据库切 mysql 或者 pg
lymanbernadette6
27 天前
@moyuge #2
感谢回复,
目前已经是最新版本。
数据库文件大小这个量级 sqlite 与 pg mysql 性能差距会比较大吗?
我仓库只有几十个,只有冷加载比较慢,登录进去之后都挺快。
lymanbernadette6
27 天前
@Pethidine #1 我的仓库只有几十个,基本也是经常更新。 只有冷加载比较慢,登录进去之后都挺快。 所以才比较奇怪
ExplodingFKL
27 天前
https://github.com/go-gitea/gitea/pull/33981 action 表导 500 万条记录时会遇到,这个 PR 解决了。要等 1.24 问题出在 select count 其实很慢,当数据库表超过 500 万记录左右时。

(其实可以去 discord 、国内官方群或者 gitea 自家的论坛咨询的,v2ex 问这个属于是随缘了)
ExplodingFKL
27 天前
( 群里复制的,好像复制多了
lymanbernadette6
24 天前
@ExplodingFKL #5 谢谢大佬,其实问题还有个点我忽略了: 我通过 Nginx 转发+域名访问会经常遇到这种首页加载慢的情况, 而直接使用 IP+端口缺几乎没遇到过。
所以我贴上了 Nginx 配置,更多的怀疑是否是 Nginx 配置问题,或是 gitea 对反代后的域名判断有问题。
不过使用 AI+我自己的经验来看又没看出问题。


lymanbernadette6
10 天前
经过一系列的排查,发现是 action 表过大,大约有 700W 行的数据,这个用于记录热力图。 可以直接通过: DELETE FROM action;
清空。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://yangjunhui.monster/t/1124552

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX