Nextclud 19 @ Ubuntu 20.04
情况:
我有一个 SMB 共享,由于 Nextcloud 使用的 smbclient 不知道是不是不支持 smb3 的挂载, 外部存储添加 smb 死活添加不上。
只能走迂回方法:本地挂载 cifs,然后 NextCloud 里面添加本地存储访问它。
另人窒息的来了: 我在浏览器上访问文件(视频文件)在线播放,然后 SMB 服务器的磁盘 IO 就被吃满了,感觉 NextCloud 在把文件本身全部读取一遍那种动作,巨卡。即使停止播放仍然占用大量 IO 到很久,资源监视里面可以看到被点击的文件和同文件夹的其它文件被读取中。
怀疑是 SMB 的问题,拷了几个大文件到本地磁盘,结果发现 NextCloud 的行为仍然一致,web 上点击文件播放,NextCloud 后台就能把磁盘 IO 吃满。
1
hjc4869 2020-10-02 23:15:51 +08:00
视频暂停后浏览器仍然在继续缓冲后面的内容吧。关掉浏览器应该就好了。
|
2
pupboss 2020-10-02 23:23:03 +08:00
|
3
Osk OP 缓冲速度不可能有 300MBytes/s 吧 🤣
浏览器实际流量很少 |
4
pupboss 2020-10-02 23:25:01 +08:00
手滑发出去了,现在也不能贴链接了,求助过好几个帖子,都没卵用,建议不用它存大文件,没别的方案
|
5
pupboss 2020-10-02 23:25:15 +08:00 1
|
7
pupboss 2020-10-02 23:26:45 +08:00
@Osk 他们内部关于文件处理的部分,需要在文件读取结束做一个操作,所以在现有的框架下,基本上做不到暂停文件读取了,我的解决办法是大文件一般也就是一些视频,用 emby 方案更好一些
|
9
Vneix 2020-10-02 23:29:25 +08:00 via Android
我把略缩图功能完全关闭后,用起来就很流畅了,不清楚你的问题是否可以这么解决
|
10
parametrix 2020-10-02 23:56:37 +08:00
似乎是个 bug 。可以考虑换到 Owncloud,和 nextcloud 非常类似,个人体验要稳健得多。
|
11
Osk OP @hjc4869 @pupboss @Vneix @parametrix 确认这是一个 "feature":github.com/nextcloud/server/pull/4491/files
不知道是不是我没配置对,带来的体验及其糟糕:一旦服务端开始读取一个文件,不管客户端这边是否取消,服务器那边都要把它读完。 比如:点击一个超大文件下载,然后点击取消,接下来的几分钟都别想用了,等服务端占着 io 把文件读完了再说。。。。 搜索代码中 `ignore_user_abort(true)`,改成 `ignore_user_abort(false)`. 测试了一下视频在线预览,拖进度条流畅多了,后台看看 io 也正常了,不像之前动不动 100%读文件。 但是不懂 php 不知道 nextcloud/owncloud 官方加入这个这个的作用,怕乱改代码炸服务器。 终于像个正常网盘该干的动作了,有意思的是,有人提过 issue,被关了。。。 |
12
Osk OP ignore_user_abort(false) 好像确实会炸。。。
|
13
pupboss 2020-10-03 11:31:41 +08:00
对的,会炸,有一个内部开发人员在我 GitHub issue 下给过这个方案,这行代码万万不能注释掉,老哥你要是懂 php 的话,帮忙看看 require_once $file; 这行代码,详情见这里: https://github.com/nextcloud/server/issues/8161
|