Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Backup] Limit bandwith utilisation of a backup run #4119

Closed
ghost opened this issue Apr 4, 2019 · 20 comments · Fixed by #6728
Closed

[Backup] Limit bandwith utilisation of a backup run #4119

ghost opened this issue Apr 4, 2019 · 20 comments · Fixed by #6728

Comments

@ghost
Copy link

ghost commented Apr 4, 2019

It would be very useful if it was possible to set a limit on the transfer speeds for specific backup schedules. The limit could also be scheduled so that during "hot times" it could be a low limit and high or no limit on "cold" times.

Some examples:

  • remote outside company premises and a limited bandwidth on the external line. Limiting in XO would avoid saturating the internet connection
  • Disk I/O. Limiting backup would make less strain on I/O limited SR's and remotes.
  • Network performance. During certain times a limitation on transfer speeds could improve network performance for other applications or office users.
@ghost ghost changed the title Backup speed Limit backup transfer speeds Apr 4, 2019
@julien-f julien-f self-assigned this Apr 4, 2019
@julien-f julien-f added this to the 19.8 milestone Apr 4, 2019
@badrAZ badrAZ modified the milestones: [Frozen] 19.8, 19.9 Apr 30, 2019
@badrAZ badrAZ modified the milestones: [Frozen] 19.9, 19.10 May 14, 2019
@badrAZ badrAZ modified the milestones: [Frozen] 19.10, 19.11 May 29, 2019
@badrAZ badrAZ modified the milestones: [Frozen] 19.11, 19.12 Jun 13, 2019
@badrAZ badrAZ modified the milestones: [Frozen] 19.12, 19.13 Jun 27, 2019
@pdonias pdonias modified the milestones: [Frozen] 19.15, 19.17 Jul 31, 2019
@badrAZ badrAZ modified the milestones: [Frozen] 19.17, 19.18 Sep 5, 2019
@badrAZ badrAZ modified the milestones: [Frozen] 19.18, 19.19 Sep 20, 2019
@Rajaa-BARHTAOUI Rajaa-BARHTAOUI modified the milestones: [Frozen] 19.19, 19.20 Sep 27, 2019
@Rajaa-BARHTAOUI Rajaa-BARHTAOUI modified the milestones: 19.22, 19.23 Nov 22, 2019
@pdonias pdonias removed this from the [Frozen] 19.23 milestone Dec 2, 2019
@lancefogle
Copy link

@julien-f @olivierlambert I would like to second this request. Any thoughts on a timeline for this issue? I was going to open a new issue but found this one from a year ago.

I have just 5 VMs in one location that are running nightly Continuous Replication jobs over a 100/100 mbit connection and it saturates it completely making nothing else work (i.e. VPN, Website access, etc).

@julien-f
Copy link
Member

Shouldn't be difficult to implement, I'm adding this to the June release roadmap.

@lancefogle
Copy link

Awesome! Thank you. It would be a great help.

@antonlindgren
Copy link

Any updates on this issue? I really need this because my backups are throttling my line since I use a remote site for backups.

@olivierlambert
Copy link
Member

Hi!

No update because it's not a priority right now (improving backup perfs is a priority, but by doing that we might be able to do the opposite too, as requested here). But as usual, contributions are welcome 👍 Also, a support ticket might help to raise the priority.

Until then, take a look at iptables + tc combo to do some network limitations (example here)

@nikade87
Copy link

Any updates?
We have a remote site where the connection is shared with others, so it would be great if we could make sure not to use 100% during backups.

@olivierlambert
Copy link
Member

@julien-f maybe it's a simple modification for @fbeauchamp to implement this summer?

@julien-f
Copy link
Member

I don't see any easy way to implement this.

The more I think about it, the more I believe the best answer is at OS level.

@fbeauchamp
Copy link
Collaborator

maybe we can change _outputStream to read chunk manually instead of using pipeline and make a pause if the speed is greater than the max allowed speed.
It won't be exact given the various buffering, but it should respect the order of magnitude. It will probably have a performance cost .
@nikade87 what are the order of magnitude of the limit you want to set : is it in KBps, Mbps , Gbps, 10Gbps , more ?

@olivierlambert
Copy link
Member

Also what's the restriction perimeter? Overall backup speed per XOA/Proxy or per backup job? Or per disk?

@nikade87
Copy link

For me the limit would be specified in Mbit/s if possible.

@olivierlambert
Copy link
Member

And by what? (cf my previous comment)

@nikade87
Copy link

In our case we would need to set this at the job, we have a specific job backing up all the VM's on this offsite xcp-ng server.

@fbeauchamp
Copy link
Collaborator

the easiest to implement will be by backup transfer. then by backup job execution.
By remote from the same xo / proxy is harder but not off limit
By remote from any combination of proxy/xo/xoa will take much more time

@nikade87
Copy link

Yeah that sounds about right, that should do it. Then we'll be able to set like 500Mbit limit on that job and we'll make sure the others still have half the bandwidth available.

@lancefogle
Copy link

lancefogle commented Jun 15, 2022 via email

@julien-f
Copy link
Member

Ok, we will work on implementing a transfer speed limitation inside a backup run.

All other use cases (global limit, global limit for a specific remote, global limit for a specific pool) will not be implemented, and if needed, should be looked at the OS level.

@nikade87
Copy link

That sounds perfect, thanks guys!

@julien-f julien-f changed the title Limit backup transfer speeds [Backup] Limit bandwith utilisation of a backup run Jun 16, 2022
@Fohdeesha
Copy link
Contributor

Bumping this as another customer has requested it.

julien-f added a commit that referenced this issue Mar 17, 2023
Related to #4119

The UI side is still missing.
@julien-f julien-f reopened this Mar 17, 2023
@olivierlambert
Copy link
Member

@julien-f why it's reopened?

@julien-f julien-f closed this as completed Jun 7, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment