同じサーバーに 2 つの ActivePivot インスタンスをデプロイします (相互化)。
サーバーには 12 個の論理コアがあります。ActivePivot インスタンス A には 4 コアのライセンスがあり、ActivePivot インスタンス B には 2 コアのライセンスがあります。
2 つのインスタンスが (非効率的に同じコアを共有するのではなく) それぞれ独自のコアを使用していることを確認するにはどうすればよいでしょうか?
同じサーバーに 2 つの ActivePivot インスタンスをデプロイします (相互化)。
サーバーには 12 個の論理コアがあります。ActivePivot インスタンス A には 4 コアのライセンスがあり、ActivePivot インスタンス B には 2 コアのライセンスがあります。
2 つのインスタンスが (非効率的に同じコアを共有するのではなく) それぞれ独自のコアを使用していることを確認するにはどうすればよいでしょうか?
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自体を起動することを意味します。
しかし、私はあなたのユースケースでわざわざバインディングを強制することはしません。オペレーティングシステムのスレッドスケジューラは、おそらく2つのインスタンス間でスレッドを割り当てるのに非常に優れた仕事をし、それらが同じ物理コアに隠れるのを防ぎます。そして、そのスケジューリングは、システムの他のスレッドを考慮に入れて、完全に動的です。
手動バインディングを検討する唯一のケースは、NUMAアーキテクチャを備えた大規模サーバーの場合です。JVMをNUMAノードに隠すと、パフォーマンスが向上するためです(NUMAアーキテクチャがActivePivotのパフォーマンスにどのように影響するかについての説明を参照してください)。