The support forum

Speed/Read/Write limiter

simenson4 :

Dec 06, 2013

Don't know if you have any plans for this yet or how easy it is to implement.. But it would have been handy to have some kind of speed limiter.

I've got this NAS PC: Windows 7 64bit Pro, amd athlon 64 x2 5600+, 4gb ram and 5 external harddrives connected through USB 2.

Imagine this situation:
Bvckup2 is active backing up from D:\ to E:\. (30-45% CPU usage)
Then you decide to Copy something from F:\ to D:\. Then whole computer starts jumping from 45 to 100% CPU with complete lag spikes every few seconds. It does not happen when Bvckup2 is disabled/paused and i Copy something.

When i copy without Bvckup2 running, it uses 20-30% CPU and transfers at 25-30mb/s (USB 2 you know) :)

Atleast i believe a speed limiter would solve this issue. Making it that Bvckup2 doesn't always use 100% of the transferring speed at each copy.

Hope to hear back from you and hopefully find a good solution.

Deipotent :

Dec 06, 2013

I was going to post a similar suggestion due to other disk operations taking longer when Bvckup job taking place, although I'm not using NAS. I haven't tested it yet, but I'm wondering if lowering the bvckup.exe process priority would help. If it does, then an option in bvckup to use lower priority would be an easy quick fix.

Alex Pankratov :

Dec 06, 2013

The copying thread(s) already run on a lower priority, but it doesn't really matter. With all copying done in an async manner, the primary copying thread - the one that issues I/O requests - it sits idle most of the time anyway. Meaning, that the app does indeed needs to actively throttle I/O requests.

The big question is what logic should it use to active/deactive such throttling and to what degree should it throttle. I can certainly add a manual Read/Write caps, that's easy to do, but I doubt it'd be in much demand as it'd be hard to configure.

Any thoughts - I'm all ears.

Alex Pankratov :

Dec 06, 2013

* ... activate/deactivate ...

Deipotent :

Dec 06, 2013

Idea... Have separate thread that monitors relevant performance counters (eg. Current Disk Queue Length) on a timer tick, and pause worker/copy threads if they go above a certain value (eg. Current Disk Queue Length > 1 or 2). Once they go below this value, un-pause the worker threads. Other performance performance counters you could possibly use - CPU usage, keyboard/mouse input queue

I believe this is how various defrag products implement their ActivityGuard/IOGuard's, to stop defragging from affecting normal usage.

The various thresholds will probably need tweaking, but once you have good defaults, a simple "Enable ActivityGuard" option will probably be enough (O&O Defrag use the "ActivityGuard" name, so you might have to come up with some alternative snazzy name for your implementation, and register it as a trademark :) )

Deipotent :

Dec 06, 2013

As well as the total disk queue length, you can also get individual partition counters, so could try to optimise the guard by only including the partitions that bvckup is working on at the time.

simenson4 :

Dec 06, 2013

Well not to get into too much technical terms of the operation/process of this. I'd simply like something like uTorrent for example has. You can adjust the (total/Specific job) (Read/Write) speed. To maximize at whatever Kilobyte/Megabyte you prefer.

For example:
Job 1: D:\ to E:\ maximize Read/Write speed at 10 megabytes/s.

Global settings: Total Read/Write speed at 20 megabytes/s. (So if using concurrent and 2 jobs active at same disk it would limit to 10mb/s at each disk.

But ofcourse, this is just my ontop of my head thoughts. I'd just like to be able to limit a specific job first round around so i'm able to use the harddrives while Bvckup2 is active doing it's wonderful thing!

Ofcourse the default should be unlimited speed.

Deipotent :

Dec 06, 2013

simenson4's idea is the alternative way to do this, and is probably the more common way to do this for backup apps. It can also be implemented using relevant "Process" performance counters.

Alex Pankratov :

Dec 08, 2013

Current Disk Queue Length


Yep, good idea. This should be relatively easy to do and it also fit well with another feature which is CPU load monitoring and automatic scaling over available cores.

something like uTorrent


Ah, my all time favourite program. The older versions of it that is. A golden standard for highly functional UI and superb engineering... if only BT would've not messed with it post-acquisition.

In any case, global and per-job throttling makes sense. Also not that hard to do either and I will add it, but likely later rather than sooner. I like the feature I just don't think it's a bit too explicit and technical to be generally useful.

grasgruen.it :

Feb 14, 2018

Any news on this topic? I do backup jobs over WAN/VPN and it fills up my uplink. Would be great if I could limit the used bandwith.

Alex Pankratov :

Feb 15, 2018

This is still on ToDo list. Likely to be done in a major release after the next one.

New topic

Create
Made by Pipemetrics in Switzerland
Support


Follow
Twitter
Blog / RSS
Miscellanea Press resources
Testimonials
On robocopy
Company
Imprint

Legal Terms
Privacy