I have 3 build slaves and ~100 jobs:.
* about ~80 jobs (it varies day-to-day), that require exclusive access to 
the file system, and hence cannot be run at the same time, on the same node.
* about 20 jobs, that do not use the filesystem, and can be run in parallel

Since most jobs require exclusive access to the filesystem, the way I've 
handled the exclusive access is to only allow each Jenkins slave to run one 
job at a time.

This works, but is inefficient, since the slaves could happily run the 
parallelisable jobs.

I'd like to be able to run:
* at most one of the 80 jobs per node at the same time
* at most 9 of the 20 jobs per node at the same time

I could do this using the Throttle Concurrent Jobs Plugin, by putting the 
80 jobs in a "needs-exclusive-access" category, and setting the max number 
of concurrent jobs for that category per node to be 1, and increasing the 
number of slave executions to, say, 9. The problem with this solution is 
that when a new job is created, which will likely require exclusive access 
to the filesystem, we will inevitably sometimes forget to add the job to 
the "needs-exclusive-access", and then it'll start executing when other 
jobs are executing.

Can anyone think of a solution that that allows jobs to by default be part 
of a "needs-exclusive-access" category, but be able to opt into not needing 
exclusive access?

I realise the root problem is that jobs require exclusive access. I plan to 
fix this, but it will take time and training the rest of the team. I'm 
looking for a solution that will work in the interim.

Regards,
Tom

PS. I tried the Heavy Jobs Plugin too, but that suffers from essentially 
the same problem: Jobs have to opt in to needing exclusive access, rather 
than by-default needing exclusive access.

-- 
You received this message because you are subscribed to the Google Groups 
"Jenkins Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to jenkinsci-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jenkinsci-users/eb839f37-fefc-4559-a84f-1709c2ceb25a%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to