How to increase concurrency limit for remote execution

Hello Folks,

Foeman version – 2.1.0

We have multiple organisations and locations created in foreman, there will be 100 hosts minimum in each location. we have created individual user for each location and given access to the appropriate location. Whenever multiple locations user logins into foreman and run do remote job execution invocations against hosts per location, it is taking more time to run the job and display the results.

Is there anyway to increase the concurrency limit to execute tasks faster? what is the parameter or configuration to adjust? also please suggest me to set accurate concurrency limit value for atleast 1k hosts at a time and display results faster (i.e 10 users from 10 locations execute remote job for example uptime command against 100 hosts per location at once)

Thanks in advance !!!

Hi

By default there is no limit, so any value you set as a concurrency level will make it perform worse. It is meant to limit the concurrency, not increase it. The actual limitting factor is most likely your hardware.

Don’t set it to anything. As I said above, it will just perform worse.

If the performance is insufficient, you can tune the number of dynflow-sidekiq instances and their configurations and/or spin up more smart proxies to be used for remote execution.

How many smart proxies for remote execution do you currently have?

@aruzicka – Thanks for the quick reply.

*Could you please share any links or docs here to tune dynflow-sidekiq instances and its configurations?

*We have 1 smart proxy currently which is the default one, if we need to add more smart proxies, how can we do it – share any link’s or docs here?

Thanks

https://docs.theforeman.org/2.3/Installing_Proxy_on_Red_Hat/index-foreman.html#installing-capsule-server alternatively https://docs.theforeman.org/2.3/Installing_Proxy_on_Debian/index-foreman-deb.html if you’re on debian/ubuntu.

It says 2.3 but the process on 2.1 is the same.

You could follow this Dynflow workers scaling · GitHub , but it is not exactly docs-grade material and kinda assumes you know what you’re doing.

If I were you I’d start with adding a proxy (or two) and seeing how it goes. If even after that it does not meet your needs, then I’d mess with dynflow-sidekiq.

@aruzicka – Thanks a lot!!!

Let me setup an external smart proxy servers and keep observing how it goes.