web-dev-qa-db-ja.com

KVM:VMの最大コア数とメモリ量

16GBのRAMを備えた新しい8コアマシンを持っています。 buntuおよびKVM を使用してVMを実行したい。ホストではSSH以外は実行されません。

私の質問は、maximumコアとRAMのどれがVMに使用できるか)です。 4つのVMを作成し、2つのコアと4 GBを割り当てますRAM=それぞれ?ホストOSはそのようなセットアップで問題がありますか?

言い換えれば、minimumコアの数とRAM)は、ホストがVM?VMを実行するには、1コアと1GBのRAMで十分です。

6
ddofborg

メモリには実際の最大値がないのと同じように、最大​​値はありません。次の点に注意する必要があります。

  • A KVMホストへのv-CPUは、KVMプロセス内の単なるスレッドです。物理コアよりも多くのスレッドを実行すると、それらは競合しますそれらのコアのために、そしてホストスケジューラはそれらにCPU時間を与えることに注意する必要があります
  • ホストに物理コアがあるという単一のVM=に、より多くのv-CPUを割り当てることは避けてください。
  • HTコアを実際のコアとしてカウントしないでください。
  • VMのCPU時間が重要な場合は、可能であれば、実行中のすべてのVMに物理コアよりも多くのv-CPUを割り当てないでください。ただし、それほどビジーでないシステムでは、非常に狂った比率まで簡単に割り当て可能です(8コアのシステムで150のアイドル状態のVMが2つあり、それぞれに2つのコアが問題なく動作しているのを見てきました)。

RAM割り当てについては、これは基本的に同じ考え方です:

  • a VMはホストに対する別のプロセスであり、プロセスには使用可能なメモリ制限があります
  • 実際に持っているより多くのRAM=を使用しようとすると、RAMに比べて非常に遅いスワップになるでしょう。
  • KVMはメモリを全体的に割り当てる方法を提供します-そのためにバルーニングとKSMがあります。

したがって、VMが絶対に必要とするものを検討する必要があります(VM 4コアを指定できるので、実行に必要な最小値を指定して、パフォーマンスの問題が発生した場合は後で説明します)。
メモリの割り当てに注意してください-スワップに行きたくありません。

2
dyasny

ホストシステムのオーバーヘッドは数百MBに近いものです。起動時にfreeコマンドですぐに確認できます。

いずれにせよ、I/Oバッファに使用する空きメモリを残しておくのは良いことです。同様のVMを実行している場合は、KSMを調べてメモリ使用量を最適化してください。

0

@dyasnyが対処した考慮事項に加えて、ホストに存在するソケットの数も考慮する必要があります。

2ソケット4コア設定の場合、VMごとに多くのコアを割り当てる必要はありません。VMメインメモリ間で通信する必要があります。

以前にこの問題を経験したことがありますが、YMMVです。設定をテストします。

0
sybreon