Restrict parallel tasks per node

Is there a way to limit the number of parallel tasks can occur on a single node? We are seeing major bottlenecks when deploying 5 projects to the same node at the same time.

We need to keep the ability to deploy to multiple nodes in parallel though as this does speed up our deployment process.

Hi Adam,

Thanks for getting in touch! I may need some further information from you here. When you say node, I am assuming that you are referencing your Octopus server node, which has a default task cap of 5.

If so, we have a documentation page which has instructions on increasing this task cap.

If this is not exactly what you were after, please let me know and I’ll do my best to help. :slight_smile:

Best regards,
Daniel

Hi Daniel

That’s useful information to know but not exactly what I am after. My fault for using the word “Node” incorrectly!

What I mean is we have 20 servers that each host multiple tenanted copies of our application. I want Octopus to run 20 deployments in parallel across these servers but limit to 1 deployment at a time per server.

This is because at the moment it tries to deploy in parallel to a single server and consumes all the resources on the box.

Thanks
Adam

Hi Adam,

Thanks for getting back! I ran this past the team but we are still a little unclear on the details of the problem. I think we may need a bit more information / clarification.

When you say you want Octopus to run 20 deployments in parallel, is this a single project performing a Tenanted deployment to 20 separate targets/machines?

By default, Octopus will only run one process on each target at a time, queuing the rest, unless the OctopusBypassDeploymentMutex variable is added to the deployment.

We have a page in our documentation which covers running multiple processes on a Tentacle in parallel.

So if you have Tenant-A and Tenant-B both trying to deploy to the same Tentacle, adding this variable will let this happen in Parallel, instead of queuing Tenant-B until Tenant-A has finished.

I think this is what you are after here. If we are still misinterpreting, some screen shots to illustrate how you are currently deploying and what you need to achieve could help.

Let me know what you think.

Best regards,

Hi Daniel

That’s exactly what I was asking about. I can see that the OctopusBypassDeploymentMutex variable has been set to true. I’m not sure why or by whom but now I know it exists I can do some more investigation and find out if I can change it.

Thanks for your help.

Adam

Hi Adam,

Thanks for the update! Feel free to let me know if you have any further questions here. :slight_smile:

Best regards,
Daniel