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パフォーマンスを向上させる
次のすべてが成り立つ場合
その場合、VM内のIRQリバランスは依然として理にかなっています。
VM内に複数のCPUがない場合、VM内のIRQリバランスは明らかに目的を果たしません。その他の点については、VMが置かれている「実際の」CPUがその下でシャッフルしている可能性があり、VMのOSがどの仮想割り込みが発生するかを認識していないため、問題が発生します。実際のCPUが複数のVM間で共有されている場合、他にどのような作業が行われているのか、または仮想CPUがいつサービスを受けるのかがわからないため、「仮想リバランス」が実行されます。 「実際には事態を悪化させている可能性があります...
PS:2年前はそれほど古くはありません!いくつかの情報は時代を超えています...