%20%E4%B8%8A%E3%81%AE%E7%89%B9%E5%AE%9A%E3%81%AE%20VM%20%E3%81%AB%E5%B0%82%E7%94%A8%E3%81%AE%20vCPU%20%E3%82%92%E5%89%B2%E3%82%8A%E5%BD%93%E3%81%A6%E3%82%8B%E6%96%B9%E6%B3%95%E3%80%81%E3%81%BE%E3%81%9F%E3%81%AF%E3%81%9D%E3%82%8C%E3%81%8C%E5%8F%AF%E8%83%BD%E3%81%AA%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0%E3%81%AF%E4%BD%95%E3%81%A7%E3%81%99%E3%81%8B%3F.png)
私がこのトピックについて見つけた情報は、さまざまな理由により古くなっていた、不完全だった、または不適切だったため、ここに投稿します。
私は長い間、特定の vCPU を特定の VM (最大限の CPU パフォーマンスと、CPU ブロッキング/コンテキスト スイッチの最小化が必要) にマッピングする方法を知りたいと思っていましたが、同じノードには固定コアにアクセスできない他の VM (特定の VM からのみアクセス可能である必要がある) があり、その CPU 割り当ては「デフォルトで」スケジューラによって実行されます。
私が現在選択しているシステムは Proxmox (KVM のみを使用) で、通常は pvetest ブランチの最新バージョンと最新の 3.X カーネルを使用します。
私の特定のニーズについては、現在のシステムでこれを行う方法を学ぶのではなく、VM への CPU 割り当ての高度な管理を可能にする他のシステムやハイパーバイザーへの切り替えを検討します。有料ソリューションの予算はほぼゼロで、最初からすべてを排除しているわけではありませんが、検討する価値は非常に低いはずです。
あらかじめお礼を申し上げます。また、この質問に対する(考えられる多くの)回答が他の多くの人々にとって役立つことを願っています。
この機能は、ほとんどの VM で必要な CPU 時間が短い一方で、確実に高い CPU 時間を確保する必要のある VM が 1 つ (またはいくつか) ある仮想化ホストのユーザー/管理者にとって役立つ可能性があります (理由は何であれ、私の場合は異なるオペレーティング システムを使用しているためです)。
答え1
proxmox にはすでに同様のオプションがいくつかあるようです。
https://forum.proxmox.com/threads/numa-config-option.21313/
はい、CPU ピンニング (アフィニティ) を利用します。NUMA を有効にすると、スケジューリング アルゴリズムが変更され、基盤となる物理 CPU 上の NUMA ノードが認識されるようになると理解しています。そのため、可能な限り、vCPU のスケジューリングを同じ NUMA ノード内に維持しようとします。