web-dev-qa-db-ja.com

Linuxで「irqbalance」が必要になるのはいつですかVM VMwareでは?

VMware Enterprise5.5にLinuxファームがあります。 VMは(ほとんど)SysVinitを備えた64ビットAMD64 Debian Jessieサーバーであり、systemdではありません。 VMには open-vm-tools がインストールされています。

I 準仮想化 それらの イーサネット および ディスク コントローラー。

準仮想化ドライバーは、仮想化プラットフォームがIntel E1000 NICまたはLSILogic SAS SCSIアダプターなどの別のデバイスをエミュレートする必要がないドライバーです。これらの準仮想化ドライバードライバーは基本的に、エミュレーションレイヤーを破棄することで仲介者を排除します。これにより、通常、パフォーマンスが大幅に向上します。

lspci | egrep "PVSCSI|VMXNET"が示すように、イーサネットとディスクは準仮想化されています。

3:00.0 Serial Attached SCSI controller: VMware PVSCSI SCSI Controller (rev 02)
0b:00.0 Ethernet controller: VMware VMXNET3 Ethernet Controller (rev 01)

Catを/proc/interruptsに実行すると、それらに関連付けられた割り込みがあり、準仮想化が依存する機能に割り込みがあることを簡単に示すことができます。

56:    6631557          0   PCI-MSI 1572864-Edge      vmw_pvscsi
57:   72647654          0   PCI-MSI 5767168-Edge      eth0-rxtx-0
58:   44570979          0   PCI-MSI 5767169-Edge      eth0-rxtx-1
59:          0          0   PCI-MSI 5767170-Edge      eth0-event-2
60:          1          0   PCI-MSI 129024-Edge       vmw_vmci
61:          0          0   PCI-MSI 129025-Edge       vmw_vmci

vmw_vmci:仮想マシン通信インターフェース。 VMCI仮想デバイスを介した仮想環境でのホストとゲスト間の高速通信を可能にします。

itop を使用することは明らかなようですが、適度にビジーなSSL対応のWebフロントエンドを監視するためにかなり使用されています。

INT                NAME          RATE             MAX
 57 [   0          0   ]   142 Ints/s     (max:   264)
 58 [   0          0   ]   155 Ints/s     (max:   185)
 59 [   0          0   ]   119 Ints/s     (max:   419)
 60 [   0          0   ]   133 Ints/s     (max:   479)

CPUアフィニティ のVM、およびシングルコアVMではirqbalanceは必要ないと確信しています。 CPUアフィニティを手動で構成した2つのサーバーには、実際に特別なニーズがあります。一般的な場合、文献によると、irqbalanceはより良い仕事をするはずです。

だから私の質問は、マルチCPU Linux VMの異なるCPUを介して割り込み負荷を分散するために irqbalance が必要なのはいつですか?

注:私はすでにいくつかの論文と関連する(日付の) serverfault の投稿を調べましたが、それらについてはあまり明確ではありません。また、Xenについて同様の懸念を表明している学術論文を見つけました。 vBalance:割り込みロードバランスを使用してSMP仮想マシンのI/Oパフォーマンスを向上させる

3
Rui F Ribeiro

次のすべてが成り立つ場合

  • VM内の複数のCPU
  • VMは(ホストを介して)特定の専用CPU(他のVMと共有されていない)に1で固定されています-1つのVM CPUからホストCPUへのマッピング
  • VMは専用(パススルーなど)でストレージ/ネットワークハードウェアにアクセスできます

その場合、VM内のIRQリバランスは依然として理にかなっています。

VM内に複数のCPUがない場合、VM内のIRQリバランスは明らかに目的を果たしません。その他の点については、VMが置かれている「実際の」CPUがその下でシャッフルしている可能性があり、VMのOSがどの仮想割り込みが発生するかを認識していないため、問題が発生します。実際のCPUが複数のVM間で共有されている場合、他にどのような作業が行われているのか、または仮想CPUがいつサービスを受けるのかがわからないため、「仮想リバランス」が実行されます。 「実際には事態を悪化させている可能性があります...

PS:2年前はそれほど古くはありません!いくつかの情報は時代を超えています...

PPS: VMCIは痕跡であり、ESXi 6以降ではサポートされていません

3
Anon