zfile-dev/zfile

性能问题: 差距可达6倍以上

fangfang333 opened this issue · 4 comments

描述

首先有两个服务器:
①一个zfile挂载本地文件夹。
②另一个用nginx搭建简单的文件列表,配置文件如下
location /share/tmp {
alias /opt/file/share/tmp;
autoindex on;
charset utf-8;
}

其实这两个的本体都是同一个本地文件夹,但是实际下载同一个大文件时(多线程),
nginx的速度可以达到830mbps左右,CPU占用为4%~5%
zfile的速度平均为430mbps左右,CPU占用在93%~99%之间波动。

全部都是外网下载,都经过了两次反代(中转机反代以及本机443反代)
处理器为arm架构4核,zfile是24年4月安装的最新版本(docker版)。

有一个还算不错的解决办法,就是设置后端服务器,可以将后端设置为本机的nginx服务器端口,就可以做到实际下载时使用nginx的链接直接下载,速度很快,只不过在路径上面会自动增加/pd/无法绕过,并且自动加上了?signature=1ce6a491e之类的鉴权参数),只能修改nginx的监听路径,

虽然会提示
检测到设置异常,实际后端域名应为 https://xxx.yyyy.top,是否需要修复?(不修正可能会影响下载、文件夹加密和文档预览功能),
但是实际使用是没有问题的,我的nginx配置文件不需要?signature=1ce6a491e参数,也不会报错,速度很快
image

额外信息

docker版可有更换过jdk的镜像版本?自行构建感觉太麻烦了,基于现有的情况,我可能会更偏向于使用nginx作为后端,接下来尝试关闭nginx的这一行 autoindex on; 但是不关闭直链,让它作为zfile的隐藏后端,虽然不算完美,但是简单直接

我 build 了一个新镜像,可以换这个试试 docker pull zhaojun1998/zfile:4.1.5-jdk11

好的,谢谢,已测试新镜像540~600mbps左右,cpu占用40%60%之间(偶尔飙升至90%,和下载速度好像不是线性关系),6G大文件前10秒可以跑满了(cpu99%),提升了不少,但依然没有原生nginx的高效和稳定,暂时不确定时网络环境问题还是其他原因,先更新至新镜像,但继续用nginx作为后端一段时间。
已重新用nginx测速,实测此时速度也就600
650mbps左右,只比zfile高一点点,但是zfile的cpu占用还是太高了,虽然速度有了提升,cpu占用也确实已经降低了很多

这里也放一下我的配置。
①docker-compose配置文件如下
zfile.yaml.txt
onlyoffice.yaml.txt
②nginx配置文件如下
OnlyOffice.conf.txt
zfile.conf.txt
③其他设置:所有存储源的"生成签名链接"开关都关掉,后端服务器不需要修改了,因为443端口反代时直接劫持了/pd/路径