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

2021-05-11 07:23:26 +08:00
 rv54ntjwfm3ug8
在没有任何文件的情况下 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 友帮忙看下。
3675 次点击
所在节点    云计算
23 条回复
defunct9
2021-05-11 08:09:10 +08:00
开 ssh,让我上去看看
loveyu
2021-05-11 08:18:57 +08:00
没开 opcache ?
rv54ntjwfm3ug8
2021-05-11 08:38:51 +08:00
@loveyu #2 用的是官方 Docker 镜像,应该默认就是开着的
timepast
2021-05-11 08:46:12 +08:00
换了,seafile
tankren
2021-05-11 08:53:00 +08:00
换 seafile
ferock
2021-05-11 09:05:00 +08:00
这货就是性能垃圾
villivateur
2021-05-11 09:51:03 +08:00
我用的是官方 docker 镜像外加自己的 mysql,不是很卡,要不你试试换个数据库呢?
DeWjjj
2021-05-11 09:57:48 +08:00
🌝🌝我用 gogs 也很慢,但是 gitea 快的飞起
Osk
2021-05-11 10:00:15 +08:00
性能糟糕的玩具, 连基础的存储功能都做不好, 建议换了. 你要是用上了, 放一个 几 GB 的文件上去, 服务器都可能假死掉.
no1xsyzy
2021-05-11 10:05:39 +08:00
先不走网络,直接在服务器上 time curl --resolve 走一遭

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

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

先看下 compose 文件?
matolv
2021-05-11 12:09:16 +08:00
增加 php-fpm 数量
rv54ntjwfm3ug8
2021-05-11 12:22:26 +08:00
@no1xsyzy #15
compose 文件:paste.ubuntu.com/p/DWmwB96rgs/
同一个配置文件在 DigitalOcean 的低配机上反应非常快。
Nginx 外还套了一个工作在 TCP 层的 HAProxy,方便 SSH 端口转发提高安全性。已测试容器 HTTP 端口暴露公网直连,确定不是反代的问题。
byte10
2021-05-11 12:54:18 +08:00
要不用 可道云吗
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
2021-05-11 18:05:38 +08:00
@no1xsyzy #19 www 那个文件夹是原来用这个配置文件的服务器提供静态资源的,直接复制配置文件的时候忘记删掉了。我试过直接把 Nextcloud 容器的 80 端口暴露在公网上直接访问,同样非常慢。然后我在 compose.yaml 里把 Nextcloud 的镜像换成了 GitLab,反代配置不变,非常流畅,感觉问题出在 Nextcloud 上。

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

https://www.v2ex.com/t/776135

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

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

© 2021 V2EX