0

We deploy two ActivePivot Instances on the same server (mutualization).

The server has 12 logical cores. We have a 4-cores license for ActivePivot instance A and a 2-cores license for ActivePivot instance B.

How can we be sure that the two instances each use their own core (instead of inefficiently sharing the same cores)?

Jack
  • 145
  • 1
  • 1
  • 11

1 Answers1

0

ActivePivot runs in a JVM so you can do it by binding the JVM process hosting the ActivePivot instance to a set of cores.

All operating systems have commands to bind processes to a core, /affinity in Windows ( http://blog.tune-up.com/windows-insights/assign-processor-affinity-to-improve-performance/ ) and taskset in Linux ( http://www.cyberciti.biz/faq/taskset-cpu-affinity-command/ ). Again the trick is to bind the JVM process to the set of cores that you want. If you run ActivePivot within Apache Tomcat it means launching Tomcat itself with the binding command.

But I would not bother forcing the binding in your use case. The thread scheduler of the operating system will probably do a very good job allocating threads between your two instances, and prevent them from concealing on the same physical core(s). And that scheduling is fully dynamic, taking into account other threads of the system.

The only case I would consider a manual binding is for a large server with NUMA architecture. Because concealing a JVM to a NUMA node improves performance (see discussion at How does NUMA architecture affect the performance of ActivePivot? ).

Community
  • 1
  • 1
Antoine CHAMBILLE
  • 1,676
  • 2
  • 13
  • 29