必ずしもコアをオフまたは無効にする必要はありません。
cpusetsとtasksetを使用します
http://man7.org/linux/man-pages/man7/cpuset.7.html
cpusetは、CPUとメモリノードのリストを定義します...
cpusetファイルシステムは、カーネルcpusetメカニズムへの擬似ファイルシステムインターフェイスであり、プロセスのプロセッサ配置とメモリ配置を制御するために使用されます。通常、/ dev / cpusetにマウントされます。
cpusetの組み込みサポートでコンパイルされたカーネルを備えたシステムでは、すべてのプロセスがcpusetに接続され、cpusetは常に存在します。システムがcpusetsをサポートしている場合、ファイル/ proc / filesystemsにエントリnodev cpusetがあります。cpusetファイルシステムをマウントすることにより(下の「使用例」セクションを参照)、管理者はシステム上のcpusetを構成して、そのシステム上のプロセスのプロセッサーとメモリーの配置を制御できます。デフォルトでは、システム上のcpuset構成が変更されていない場合、またはcpusetファイルシステムがマウントされていない場合、cpusetメカニズムは存在しますが、システムの動作には影響しません。
システムのCPUには、プロセス内で実行可能なすべての論理処理ユニットが含まれます。これには、パッケージ内の複数のプロセッサーコアや、プロセッサーコア内のハイパースレッドが含まれます。メモリノードには、メインメモリのすべての個別のバンクが含まれます。小型およびSMPシステムには通常、システムのすべてのメインメモリを含む1つのメモリノードしかありませんが、NUMA(非均一メモリアクセス)システムには複数のメモリノードがあります。
つまり、6個のコアを持つ1個のCPUがある場合、cpusetを構成し、1つのコア(たとえばコア#3)のみで構成されたcpusetでプロセスを起動します。並列プロセスである場合、すべて1つのコアに限定されるため、1つのコアのみが定義されている特定のcpusetで4つのプロセスを起動した場合、4つのプロセスはそれぞれコア#3で25%のCPU使用率を取得します。
それに基づいて、通常起こることは、cpusetが次のように構成されていることです。
- たとえば、200以上のコアシステムでは、cpusetAはコア0..60であり、cpusetBはコア61..70です。cpusetCはコア71..80です。ただし、管理者/アーキテクトは構成を選択します。
- cpusetAは、特定のユーザーおよび/または特定のソフトウェアプログラムに割り当てられます。cpusetBは異なるユーザー/プログラムに割り当てられます。等々。
- ユーザーが特定のcpuset内でN個のコアを要求するジョブ(プロセス)を起動すると、それらの複数(並列)プロセスはその特定のcpusetに限定されます。また、特定のcpusetに限定されたN個の並列では、これらのプロセスのそれぞれがプロセッサアフィニティまたはCPUアフィニティを使用するため、これらの並列プロセスはcpuset内の異なるコアでスラッシングしません。
また、https://linux.die.net/man/1/taskset
maxcpus=1
コマンドをどこに置くかは不明です。その文字列をgrub.cfg
起動オプションとして入れましたか?(コメントで答えるのではなく、質問を更新してください)。