unraid可以限定只缓存文件夹中的小文件吗?


Go to solution Solved by Echo of Starsong,

Recommended Posts

如题,最近把Jellyfin的库迁移到了unraid上。使用了一段时间后发现网页访问Jellyfin的时候海报会需要个几秒才加载出来。新的电影、电视剧用tmm搜刮整理的时候,速度也明显变慢(不是host的问题)。我之前用DSM RAID10 阵列的时候没有这么慢。于是我就考虑把海报、字幕文件、nfo文件这些小文件移动到缓存池,视频文件这种动辄1G起步的大文件,则继续保存在阵列中。但是我在文件夹缓存设置中并未找到相关选项。

 

如果我选择“优先”,是不是小文件和视频文件都会被移动到缓存中?我的缓存SSD只有500GB,如果视频文件也会被移动的话,容量就完全不够用了。

 

我希望的缓存设置是,例如,电影文件夹中,小于20MB的文件放进缓存池,这样当我需要修改的时候可以更快地访问(通常是海报、字幕、nfo文件)。而超出这个大小的文件保留在阵列上(通常是视频、音频文件)。是否有办法满足这种要求?

Edited by imsoz0
Link to comment
6 minutes ago, Echo of Starsong said:

在我另一个帖中,也有老哥提到了这个插件。我也看了插件中有个设置是“移动超过大小的文件”。假设共享文件夹缓存设定为 “Prefer”,Mover Tuning 设定为移动超过 20MB 的文件。那么文件移动的步骤是否如下:

 

步骤1. 阵列中的大文件A 和小文件B 都移动到缓存中(只要还有可用的缓存空间)

步骤2. Mover Tuning 将超出大小的文件A移动回阵列。

步骤3. 系统发现还有可用的缓存空间,又将文件A 移动到缓存中。

步骤4. Mover Tuning 又发现超出大小的文件A,并将其移动回阵列。

 

我的困惑是:

 

1. Mover Tuning 在文件从阵列中移动至缓存时是否会工作?我只希望阵列上小于 20MB 的文件B 移动到缓存。而共享文件夹的 “Prefer” 缓存设定似乎是只要缓存还有空间,不论文件大小都会一股脑的从阵列中移动到缓存中。

2. 如果 Mover Tuning 只在文件已经被移动到缓存后才工作。那么步骤3和步骤4是否会回变成死循环?

3. 帖子中这个老哥还说到,Mover Tuning 只是系统 Mover 的一个过滤器,并不是第二个Mover。在整个过程中只有步骤1会发生。这不就等于我把所有的文件从HDD上移动到SSD上了吗?虽然这加快了所有文件的读写,但这和我的预期完全不同。

4. 基于第3点,系统的 Mover 是仅工作于将文件从缓存移动到阵列?还是说从阵列移动文件到缓存时,Mover 也在工作。如果是这样,那么Mover Tuning中设定的“移动超过 20MB 的文件”,那不反倒变成将阵列中的大文件移动到缓存,而小文件继续保存在阵列中了吗?

 

小小的脑袋,大大的疑惑。

Link to comment
  • Solution

我不是开发者,所以具体是怎样并不清楚。

结合另一个英文帖的谈论来看,你可用理解为:MoverTuning只是个过滤器。在Mover工作时,对文件进行过滤。

1 hour ago, imsoz0 said:

缓存设定为 “Prefer”,Mover Tuning 设定为移动超过 20MB 的文件。

如果作者没有对 "yes" 和 "prefer" 动作区别处理的话。那么只会发生:阵列中的大文件A移动到缓存中,小文件B被留在阵列中(只要还有可用的缓存空间)

 

On 2023/1/23 at PM10点47分, imsoz0 said:

我希望的缓存设置是,例如,电影文件夹中,小于20MB的文件放进缓存池,这样当我需要修改的时候可以更快地访问(通常是海报、字幕、nfo文件)。而超出这个大小的文件保留在阵列上(通常是视频、音频文件)。是否有办法满足这种要求?

将共享文件夹缓存设定为 “Yes”,小于20MB的文件将会被留在缓存中。

 

On 1/23/2023 at 10:47 PM, imsoz0 said:

我的缓存SSD只有500GB,如果视频文件也会被移动的话,容量就完全不够用了。

对于你想把小文件移动到缓存而不移动大文件这方面没有什么好方法。

 

我个人的建议是:

1. 关闭 MoverTuning 中的文件大小限制和时间限制。

2. 项目 Ignore file types(忽略文件类型): Yes ,项目 comma seperated list of file types(以逗号分隔的文件类型列表): avi,mp4,mkv (填文件格式,反正把你有的视频写上)

3. 让 Mover 执行一次,注意项目 Move Now button follows plug-in filters : 默认No ,这样你点那个立即移动是不受 MoverTuning 影响的。

 

Mover完了之后除了视频都在缓存了,这时候把 MoverTuning 改成你想要的样子,然后将共享文件夹缓存设定为 “Yes”。

 

Link to comment
On 1/25/2023 at 1:11 PM, Echo of Starsong said:

我不是开发者,所以具体是怎样并不清楚。

结合另一个英文帖的谈论来看,你可用理解为:MoverTuning只是个过滤器。在Mover工作时,对文件进行过滤。

如果作者没有对 "yes" 和 "prefer" 动作区别处理的话。那么只会发生:阵列中的大文件A移动到缓存中,小文件B被留在阵列中(只要还有可用的缓存空间)

 

将共享文件夹缓存设定为 “Yes”,小于20MB的文件将会被留在缓存中。

 

对于你想把小文件移动到缓存而不移动大文件这方面没有什么好方法。

 

我个人的建议是:

1. 关闭 MoverTuning 中的文件大小限制和时间限制。

2. 项目 Ignore file types(忽略文件类型): Yes ,项目 comma seperated list of file types(以逗号分隔的文件类型列表): avi,mp4,mkv (填文件格式,反正把你有的视频写上)

3. 让 Mover 执行一次,注意项目 Move Now button follows plug-in filters : 默认No ,这样你点那个立即移动是不受 MoverTuning 影响的。

 

Mover完了之后除了视频都在缓存了,这时候把 MoverTuning 改成你想要的样子,然后将共享文件夹缓存设定为 “Yes”。

 

我发现我犯了一个错误,从一开始我就应该把共享文件夹设置为“YES”。

 

按照你说的方法尝试了一下,在Mover Tuning中设置忽略文件类型为:然后把共享文件夹设置为“Prefer”,尝试了一下发现视频文件没有被过滤,也移动到了缓存中。看了下缓存中的文件内容,发现就只是把阵列上的文件又复制一遍到缓存上。

 

本来想直接在Krusader中筛选出非视频的其他所有文件,复制到缓存中。但是不知道如何把筛选结果中的文件在复制到缓存的时候顺便创建对应的文件夹层级结构。于是通过手动复制文件夹到缓存中,每移动完一部分就把视频文件全部从缓存中删除,再复制下一批文件。(蠢办法了属于是,也不知道有没有什么更省力的办法)

 

不过终归是能用了,Jellyfin的海报加载快了很多,以前海报加载不出来需要刷新页面的问题也解决了。

Snipaste_20230125_192709.png

 

Snipaste_20230125_192905.png

Edited by imsoz0
  • Like 1
Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.