我们在同一台服务器上部署两个ActivePivot实例(互助化)。
该服务器有12个逻辑核心。我们有一个用于ActivePivot实例A的4核许可证和一个用于ActivePivot实例B的双核许可证。
我们如何确保这两个实例各自使用自己的核心(而不是低效地共享相同的核心)?
发布于 2013-01-22 23:55:06
ActivePivot在JVM中运行,因此可以通过将托管ActivePivot实例的JVM进程绑定到一组核心来实现。
所有操作系统都有绑定进程到内核的命令,在Windows ( http://blog.tune-up.com/windows-insights/assign-processor-affinity-to-improve-performance/ )中绑定/affinity,在Linux ( http://www.cyberciti.biz/faq/taskset-cpu-affinity-command/ )中绑定任务集。同样,诀窍是将JVM进程绑定到所需的核心集。如果在Apache Tomcat中运行ActivePivot,则意味着使用绑定命令启动Tomcat本身。
,但我不会费心在您的用例中强制绑定。操作系统的线程调度程序可能会很好地在两个实例之间分配线程,并防止它们隐藏在相同的物理核心上。并且该调度是完全动态的,并考虑到系统的其他线程。
我唯一会考虑手动绑定的情况是使用NUMA架构的大型服务器。因为向NUMA节点隐藏JVM可以提高性能(请参阅How does NUMA architecture affect the performance of ActivePivot?中的讨论)。
https://stackoverflow.com/questions/14462500
复制相似问题