On 06-02-14 14:17, Mats Norén wrote:
Hi,
I have a use case where multiple users need to run multiple
simultaneous solvers.
Is there a best practice in scaling out Optaplanner for multitenancy?
Just to be clear I'm not interested in scaling out a single
optimization run but instead multiple solvers.
So I'm looking for pros and cons for:
- multiple solvers in the same JVM
Provide 1 CPU core per Solver that's running
in parallel.
1 Solver saturates 1 CPU core entirely
and it is ussually happy if it has 300mb of free heap space on top of it
needs as a bare minimum.
If there is no such free heap space, you're basically trading more cpu
for less memory (due to higher GC activity).
So provide 1 CPU core per Solver that's running in parallel.
If you need to run 8 jobs and have 4 CPU cores, I would probably run 4
at the same time for half the time.
- multiple JVM:s on a single machine (with multiple solvers)
I
see no reason to do that. By using 1 JVM you pool class instances, etc
so use less memory overall.
- multiple machine setup
Definitely the way to increase Solvers
running in parallel.
- virtual machine vs lxc (Docker) vs bare metal
No data on that
yet.
I'm also interested in provisioning of rules etc
Let me know what works well
for you and what doesn't with multitenancy!
Regards,
Mats
_______________________________________________
rules-users mailing list
rules-users(a)lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users