V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Recommended Services
Amazon Web Services
LeanCloud
New Relic
ClearDB
rv54ntjwfm3ug8
V2EX  ›  云计算

Nextcloud 运行极其缓慢应该如何排查?

  •  
  •   rv54ntjwfm3ug8 · 2021-05-11 07:23:26 +08:00 via iPhone · 3654 次点击
    这是一个创建于 1310 天前的主题,其中的信息可能已经有所发展或是发生改变。
    在没有任何文件的情况下 Nextcloud 运行都非常缓慢,看 Chrome 的 Network 页每个请求 TTFB 都在 20 秒以上,CPU 和 RAM 以及 IO 占用都非常低,不知道从哪里开始排除问题。用的是以前在 DigitalOcean 上用过的那份 Docker 配置文件,在配置比这台低很多的机器上都能流畅运行。做过的尝试是把 PostgreSQL 换成了 SQLite,把 Redis 关了(怀疑是我数据库配置问题),把 HAProxy 反代撤了,容器 HTTP 直接暴露公网(怀疑是反代有问题),速度没有任何提升。但是把程序换成 Filebrowser,保留原来的反代配置,打开就非常快。这台服务器是 Contabo 10 核 60G RAM 的新加坡 VPS,香*港 ping 过去延迟全在 34ms 以内,因此可以排除线路问题。自己 DD 安装了一遍干净的 Ubuntu,Unixbench 跑分还是非常漂亮,编译大型项目也很快。折腾了 3 天还没解决,求 V 友帮忙看下。
    23 条回复    2021-05-18 20:11:12 +08:00
    defunct9
        1
    defunct9  
       2021-05-11 08:09:10 +08:00 via iPhone   ❤️ 1
    开 ssh,让我上去看看
    loveyu
        2
    loveyu  
       2021-05-11 08:18:57 +08:00 via Android
    没开 opcache ?
    rv54ntjwfm3ug8
        3
    rv54ntjwfm3ug8  
    OP
       2021-05-11 08:38:51 +08:00 via iPhone   ❤️ 1
    @loveyu #2 用的是官方 Docker 镜像,应该默认就是开着的
    timepast
        4
    timepast  
       2021-05-11 08:46:12 +08:00 via Android
    换了,seafile
    tankren
        5
    tankren  
       2021-05-11 08:53:00 +08:00
    换 seafile
    ferock
        6
    ferock  
       2021-05-11 09:05:00 +08:00 via iPhone
    这货就是性能垃圾
    villivateur
        7
    villivateur  
       2021-05-11 09:51:03 +08:00 via Android
    我用的是官方 docker 镜像外加自己的 mysql,不是很卡,要不你试试换个数据库呢?
    DeWjjj
        8
    DeWjjj  
       2021-05-11 09:57:48 +08:00 via Android
    🌝🌝我用 gogs 也很慢,但是 gitea 快的飞起
    Osk
        9
    Osk  
       2021-05-11 10:00:15 +08:00
    性能糟糕的玩具, 连基础的存储功能都做不好, 建议换了. 你要是用上了, 放一个 几 GB 的文件上去, 服务器都可能假死掉.
    no1xsyzy
        10
    no1xsyzy  
       2021-05-11 10:05:39 +08:00
    先不走网络,直接在服务器上 time curl --resolve 走一遭

    再临时开一台服务器,全程开着 script 尝试复现,复现成功把复现过程展现出来,没复现就用新的这台(
    soulzz
        11
    soulzz  
       2021-05-11 10:24:14 +08:00
    nextCloud 属实拉胯
    我自己基于 MongoDb 写一个云盘性能都要比它好
    neekeV2
        12
    neekeV2  
       2021-05-11 10:29:55 +08:00
    换 seafile
    treizeor
        13
    treizeor  
       2021-05-11 10:40:41 +08:00   ❤️ 1
    可以试下 FileRun
    rv54ntjwfm3ug8
        14
    rv54ntjwfm3ug8  
    OP
       2021-05-11 10:44:58 +08:00 via iPhone   ❤️ 1
    @no1xsyzy #10 试过在服务器上直接 curl 了,照样卡 10 秒才有响应。
    @treizeor #13 以前试过这个,反代好像有问题,不管怎么配置都经常跳到 localhost:80
    no1xsyzy
        15
    no1xsyzy  
       2021-05-11 10:55:00 +08:00
    nextcloud 本来就是为了大堆外围的,虽然未必比得上设一堆专门应用,但胜在一个平台,一人一账号。
    (换句话说,只是为了存储的话还是换更好的吧,SAMBA 都更好)

    性能问题也不应是在空实例上有问题。

    先看下 compose 文件?
    matolv
        16
    matolv  
       2021-05-11 12:09:16 +08:00
    增加 php-fpm 数量
    rv54ntjwfm3ug8
        17
    rv54ntjwfm3ug8  
    OP
       2021-05-11 12:22:26 +08:00 via iPhone   ❤️ 1
    @no1xsyzy #15
    compose 文件:paste.ubuntu.com/p/DWmwB96rgs/
    同一个配置文件在 DigitalOcean 的低配机上反应非常快。
    Nginx 外还套了一个工作在 TCP 层的 HAProxy,方便 SSH 端口转发提高安全性。已测试容器 HTTP 端口暴露公网直连,确定不是反代的问题。
    byte10
        18
    byte10  
       2021-05-11 12:54:18 +08:00
    要不用 可道云吗
    no1xsyzy
        19
    no1xsyzy  
       2021-05-11 13:57:44 +08:00
    怎么还有一层 nginx,是提供静态资源吗?那估计你的 nginx.conf 也得提供下

    目前看了下
    services.nginx.volumes.2 = /opt/nginx/www/:/var/www/:ro
    这文件夹是空的吧,本来是要和 nextcloud 配到同一个地方去,不然要么需要手动更新,要么 404 然后回落到 apache 上去。

    你先不管 nginx,改下 services.nextcloud.ports 把这个的 80 直接放出来看看(而且其实没必要这个地方用 nginx 扣性能,过早优化了),问题出在 client-nginx 还是 nginx-apache
    话说也可以 sudo tshark -i br-$(sudo docker network ls | grep nginx_network | cut -d' ' -f1) 跟踪下 nginx-apache 的网络流量
    rv54ntjwfm3ug8
        20
    rv54ntjwfm3ug8  
    OP
       2021-05-11 18:05:38 +08:00 via iPhone   ❤️ 1
    @no1xsyzy #19 www 那个文件夹是原来用这个配置文件的服务器提供静态资源的,直接复制配置文件的时候忘记删掉了。我试过直接把 Nextcloud 容器的 80 端口暴露在公网上直接访问,同样非常慢。然后我在 compose.yaml 里把 Nextcloud 的镜像换成了 GitLab,反代配置不变,非常流畅,感觉问题出在 Nextcloud 上。
    no1xsyzy
        21
    no1xsyzy  
       2021-05-11 20:48:30 +08:00   ❤️ 1
    @theklf4 啊我忘了可以替换这个…… 不过我也不懂了,甚至有点怀疑 VPS 提供方有问题(因为那家自己有单独托管的 nextcloud 实例(应该不至于))
    最后一些想法:
    1. 删掉本地的 image 然后用最最基础的 docker run -d -p 8080:80 nextcloud 来一遍
    2. 降级到 20 试试
    3. 换 fpm 版本?
    4. 找 r/nextCloud 或者 help.nextcloud.com 或 VPS 提供方问
    zololiu
        22
    zololiu  
       2021-05-12 00:20:01 +08:00   ❤️ 1
    nextcloud 卡慢到飞起,不得解决。
    后来改用 FileRun,舒坦了。
    rv54ntjwfm3ug8
        23
    rv54ntjwfm3ug8  
    OP
       2021-05-18 20:11:12 +08:00 via iPhone   ❤️ 1
    已解决,竟然是因为容器间 IPv6 通信不通,所有请求都要卡几秒 fallback 到 IPv4 才能完成。白折腾了 2 周。

    cc @no1xsyzy
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2976 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 11:43 · PVG 19:43 · LAX 03:43 · JFK 06:43
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.