Skip to content
View in the app

A better way to browse. Learn more.

Unraid

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

[Plugin] Mover Tuning

Featured Replies

  • Replies 3.5k
  • Views 486.8k
  • Created
  • Last Reply

Top Posters In This Topic

Most Popular Posts

  • hugenbdd
    hugenbdd

    New Version 07-03-2023   HUGE thanks/Shout-out to @Swarles for the help with updating code fixes and adding a great new feature.  You can now have some customization per share.  It's great t

  • How to ignore a SINGLE file 1.) Find the path of the file you wish to ignore.     ls -ltr /mnt/cache/Download/complete/test.txt         root@Tower:/# ls -ltr /mnt/cache/Download/complete/test

  • Hi all, I made a new version of the plugin. This fork replaces @hugenbdd's plugin which is not maintained anymore and will land in community applications if your feedbacks are positive.  

Posted Images

These are my settings. My cache just filled all the way up and nothing is moving. What did i do wrong? Thank you!

IMG_8596.jpeg

Edited by pleasehelpmeguys

4 minutes ago, pleasehelpmeguys said:

These are my settings. My cache just filled all the way up and nothing is moving. What did i do wrong? Thank you!

This tells the plugin to essentially do nothing but "say what it would do".

Clipboard01.jpg

2 minutes ago, Kilrah said:

This tells the plugin to essentially do nothing but "say what it would do".

Clipboard01.jpg

Thanks, idk why that was on! Should i change fill up/prime to this level of space as well?

That all depends on what you want the plugin to do, we can't guess that.

Just now, Kilrah said:

That all depends on what you want the plugin to do, we can't guess that.

But that setting means it allows the cache to be filled up to a certain percentage right? So at 0 isn’t it not allowing it to be filled to anything?

I’m confused bc i thought the first setting essentially told it to be moved at or above a certain percentage, so isn’t the fill up setting redundant?

Like imagine if i have the first setting (only move above %) to 85%. Then the third setting (fill up to %) at 90%. Wouldn’t that just make the mover move when it hit 85% and never actually fill up to 90%?

Edited by pleasehelpmeguys

20 minutes ago, pleasehelpmeguys said:

Thanks, idk why that was on! Should i change fill up/prime to this level of space as well?

Please read option help description by clicking on it or press F1

3 hours ago, pleasehelpmeguys said:

But that setting means it allows the cache to be filled up to a certain percentage right? So at 0 isn’t it not allowing it to be filled to anything?

I’m confused bc i thought the first setting essentially told it to be moved at or above a certain percentage, so isn’t the fill up setting redundant?

Like imagine if i have the first setting (only move above %) to 85%. Then the third setting (fill up to %) at 90%. Wouldn’t that just make the mover move when it hit 85% and never actually fill up to 90%?

All three settings are necessary. If you only had threshold value, then you would constantly be moving above or below the threshold (ie. thrashing).

Threshold value is what triggers the mover to move cache -> array.

Fill up value is what it will free down to. This should be lower than the threshold value. The delta between threshold value and free down value is the grace period in which the mover will be in an idle state. A shorter delta means a shorter interval between when the mover must be run. A longer delta means that the mover will be invoked less often.

image.png

For example, my setting will trigger whenever my cache moves above 75%. It will free down to 60% and allow the mover/disks to rest while I populate the cache another 15%. My 2TB cache means that I can fill another 300GB before the mover will be invoked again. Which is roughly a weeks worth of content for me on average.

And you should never have array -> cache shares. They're terrible.

1 hour ago, ronia said:

All three settings are necessary. If you only had threshold value, then you would constantly be moving above or below the threshold (ie. thrashing).

Threshold value is what triggers the mover to move cache -> array.

Fill up value is what it will free down to. This should be lower than the threshold value. The delta between threshold value and free down value is the grace period in which the mover will be in an idle state. A shorter delta means a shorter interval between when the mover must be run. A longer delta means that the mover will be invoked less often.

image.png

For example, my setting will trigger whenever my cache moves above 75%. It will free down to 60% and allow the mover/disks to rest while I populate the cache another 15%. My 2TB cache means that I can fill another 300GB before the mover will be invoked again. Which is roughly a weeks worth of content for me on average.

And you should never have array -> cache shares. They're terrible.

Ooh thank you! Just to clarify, so that i can make sure i’ve got it right, can you say what the 95% would do in your setup?

I set mine to 0, 0, and 95 and set files to be moved based on age (30 days). So for me it would get up to 95% and then move anything 30 days or older. What it would do if all the files are less than 30 days i dont know; there used to be an option for that in the old mover tuning plugin (truthfully that one made a lot more sense to me).

Thanks!

42 minutes ago, pleasehelpmeguys said:

Ooh thank you! Just to clarify, so that i can make sure i’ve got it right, can you say what the 95% would do in your setup?

like described (may open the help tabs ...)

depending on your Share settings (and like you see right on the values

cache > array Shares

array > cache Shares (before called cache prefer)

so, no, has nothing todo with each other ...

so the 0 0 should have the result you wish, may rather use 5 0 ... you prolly will have 5 % filled up with 30 days anyway and / or also have cache only Share files on the disk which will already be the 5 %

2 hours ago, pleasehelpmeguys said:

Ooh thank you! Just to clarify, so that i can make sure i’ve got it right, can you say what the 95% would do in your setup?

I set mine to 0, 0, and 95 and set files to be moved based on age (30 days). So for me it would get up to 95% and then move anything 30 days or older. What it would do if all the files are less than 30 days i dont know; there used to be an option for that in the old mover tuning plugin (truthfully that one made a lot more sense to me).

Thanks!

What alturismo said about 0, 0. And I agree that you should set 5, 0 just to be safe, but what you have will ... "probably work?".

As for the 95 in my scenario. It doesn't come into play because I don't have array -> cache shares, but the idea I had at the time was that if I needed an emergency amount of space, and all I had left was some stuff that should normally be on cache 100% of the time I could eject it into the array to free up space. I never tested to see if it would work.

The majority of the time, when people have array -> cache shares, it's because of appdata. My recommendation is to make appdata a cache only share and create an appdata_backup on an array only share. Then you scan snapshot your appdata folder with any number of backup tools which is probably far more useful than potentially ejecting your appdata from cache to array.

5 hours ago, ronia said:

As for the 95 in my scenario. It doesn't come into play because I don't have array -> cache shares, but the idea I had at the time was that if I needed an emergency amount of space, and all I had left was some stuff that should normally be on cache 100% of the time I could eject it into the array to free up space. I never tested to see if it would work.

personal opinion, best you can do 👍 and also my recommendation.

again personal opinion, when we use this plugin, there is no sense using array > cache Shares ... just let mover tuning run often enough and set your Shares either cache only or cache > array.

the "emergency" move wont work really good anyhow and you dont benefit from it ...

sample, a large docker image wont be temp moved to array as long as its "in use" which is the normal usecase, same for vm images ...

and, playing "ping pong" with those files makes no sense either for when you have alot of "traffic" on your cache, and so on ...

so, (again personal opinion), either use this plugin OR use a combo of cache > array, array > cache Shares ...

2 hours ago, alturismo said:

there is no sense using cache > array

I believe you meaned array > cache?

2 minutes ago, Masterwishx said:

I believe you meaned array > cache?

ups, corrected and thanks ;)

@Masterwishx I would like to request an option under:

image.png

To give the option of "Never".

There is already an option to "Disable mover running on a schedule"; however, what I'm looking for is a mode in which the scheduler is inactive and the only way to execute the mover is through the "Move Now" button. That option will disable all of the filtering options as well as the pre and post scripts.

This can be useful for testing; however, what I'm really after is that I would like to run the mover on demand through external scripts. Having the scheduled mover preempt my script would not be good.

Also this is my script I'm using at the moment in case anyone is interested:

#!/bin/bash
THRESHOLD=85
LOCK_FILE="/dev/shm/mover.lock"

# Function to release the lock on exit
cleanup() {
    rm -f "$LOCK_FILE"
    echo "Lock released."
}
trap cleanup EXIT

# Try to acquire the lock
if [ -e "$LOCK_FILE" ]; then
    echo "Lock already exists. Exiting."
    exit 1
else
    touch "$LOCK_FILE"
    echo "Lock acquired."
fi


# Get the use% of /mnt/cache and remove the '%' sign
USAGE=$(df -h /mnt/cache | awk 'NR==2 {gsub("%",""); print $5}')

# Check if mover is already running
if pgrep -f "/usr/local/sbin/mover" > /dev/null; then
    logger -t move "[$(date)] Mover is already running. Skipping start."
elif [ "$USAGE" -ge "$THRESHOLD" ]; then
    logger -t move "[$(date)] /mnt/cache usage at ${USAGE}%. Initiating mover."
    /usr/local/sbin/mover start |& logger -t move &
else
    echo "[$(date)] /mnt/cache usage is at ${USAGE}% — below the threshold of ${THRESHOLD}%."
fi
14 hours ago, ronia said:

There is already an option to "Disable mover running on a schedule"; however, what I'm looking for is a mode in which the scheduler is inactive and the only way to execute the mover is through the "Move Now" button. That option will disable all of the filtering options as well as the pre and post scripts.

For now scheduling of mover is part of Unraid.

In plugin you have (force mover + schedule).

You can set to disable mover.

Befor set (move now button follow plugin filters) = no

This will allow run unraid mover without filters by button

Hey all!

Is this plugin still supported in 6.12.15 and will it be supported in 7.1.x ?

I recall the plugin 'Fix Common Problems' flagged it as not supported for certain versions...

Also what are some alternatives to this plugin that can keep new data on cache for x days and then move it to array after x days old?

7 hours ago, gurulee said:

Is this plugin still supported in 6.12.15 and will it be supported in 7.1.x ?

Yep, support for both version, but mostly updated for v7.x

Is it possible to have the Notifications disabled if 0 files were moved?

I get them on my phone and it bugs me very much.

When using UNRAID 6.x with the mover plugin it was possible to do pre & post scripts.
I used that function after moving all my new data that was stored on the cache drive to the array and then as the post script run the command: /usr/local/sbin/powerdown to powerdown the server gracefully.

With version 7 and the new version of the plugin I can't find that field anymore, did it move someplace else or any workarounds ? (I don't know if it was a UNRAID or a mover tuning feature 🤔 )

12 hours ago, Greyberry said:

Is it possible to have the Notifications disabled if 0 files were moved?

Not now, but can be added in next version, please open future request on github

7 hours ago, ___niko___ said:

With version 7 and the new version of the plugin I can't find that field anymore

You can find them at the end of plugin settings section

20 hours ago, Masterwishx said:

You can find them at the end of plugin settings section

thank you, will check this out over the next weekend when my backup server automatically boots up to receive backups, thanks for the quick reply @Masterwishx ! 🤝

Edited by ___niko___

On 6/30/2025 at 12:34 PM, zinz said:

No idea why nothing gets moved.... Been looking over the logs and can't find what is wrong with my setupca.mover.tuning-debug-20250630-1104.zip

@Masterwishx can you take a look? I am not sure what is wrong

On 7/15/2025 at 2:32 AM, zinz said:

am not sure what is wrong

I will check it

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...

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.