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@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users