V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要把任何和邀请码有关的内容发到 NAS 节点。

邀请码相关的内容请使用 /go/in 节点。

如果没有发送到 /go/in,那么会被移动到 /go/pointless 同时账号会被降权。如果持续触发这样的移动,会导致账号被禁用。
lymanbernadette6
V2EX  ›  NAS

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

  •  
  •   lymanbernadette6 · 26 天前 · 1069 次点击
    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 友。看了一圈没看出问题所在。。
    8 条回复    2025-04-28 23:15:18 +08:00
    Pethidine
        1
    Pethidine  
       25 天前
    没遇到过,我的首页很快,但是因为有几千个仓库,而且每天大量更新,所以登录后的首页会加载个几秒
    moyuge
        2
    moyuge  
       25 天前
    升级最新版本 老版本没加索引导致很慢 数据库切 mysql 或者 pg
    lymanbernadette6
        3
    lymanbernadette6  
    OP
       25 天前
    @moyuge #2
    感谢回复,
    目前已经是最新版本。
    数据库文件大小这个量级 sqlite 与 pg mysql 性能差距会比较大吗?
    我仓库只有几十个,只有冷加载比较慢,登录进去之后都挺快。
    lymanbernadette6
        4
    lymanbernadette6  
    OP
       25 天前
    @Pethidine #1 我的仓库只有几十个,基本也是经常更新。 只有冷加载比较慢,登录进去之后都挺快。 所以才比较奇怪
    ExplodingFKL
        5
    ExplodingFKL  
       25 天前   ❤️ 1
    https://github.com/go-gitea/gitea/pull/33981 action 表导 500 万条记录时会遇到,这个 PR 解决了。要等 1.24 问题出在 select count 其实很慢,当数据库表超过 500 万记录左右时。

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


    lymanbernadette6
        8
    lymanbernadette6  
    OP
       7 天前
    经过一系列的排查,发现是 action 表过大,大约有 700W 行的数据,这个用于记录热力图。 可以直接通过: DELETE FROM action;
    清空。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3331 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 10:54 · PVG 18:54 · LAX 03:54 · JFK 06:54
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.