如何将 ActivePivot 实例绑定到物理内核
Posted
技术标签:
【中文标题】如何将 ActivePivot 实例绑定到物理内核【英文标题】:How to bind ActivePivot Instances to physical cores 【发布时间】:2013-01-22 15:49:29 【问题描述】:我们在同一台服务器上部署两个 ActivePivot 实例(相互化)。
服务器有 12 个逻辑核心。我们有一个用于 ActivePivot 实例 A 的 4 核许可证和一个用于 ActivePivot 实例 B 的 2 核许可证。
我们如何确定两个实例各自使用自己的内核(而不是低效地共享相同的内核)?
【问题讨论】:
【参考方案1】:ActivePivot 在 JVM 中运行,因此您可以通过将托管 ActivePivot 实例的 JVM 进程绑定到一组内核来实现。
所有操作系统都有将进程绑定到内核的命令,Windows 中的 /affinity (http://blog.tune-up.com/windows-insights/assign-processor-affinity-to-improve-performance/) 和 Linux 中的任务集 (http://www.cyberciti.biz/faq/taskset-cpu-affinity-command/)。同样,诀窍是将 JVM 进程绑定到您想要的一组内核。如果您在 Apache Tomcat 中运行 ActivePivot,则意味着使用绑定命令启动 Tomcat。
但我不会费心在您的用例中强制绑定。操作系统的线程调度程序可能会很好地在两个实例之间分配线程,并防止它们隐藏在相同的物理内核上。考虑到系统的其他线程,这种调度是完全动态的。
我会考虑手动绑定的唯一情况是用于具有 NUMA 架构的大型服务器。因为将 JVM 隐藏到 NUMA 节点可以提高性能(参见How does NUMA architecture affect the performance of ActivePivot? 的讨论)。
【讨论】:
以上是关于如何将 ActivePivot 实例绑定到物理内核的主要内容,如果未能解决你的问题,请参考以下文章