私の仮想マシンがネットワーク接続にvhost-netドライバを使用しているかどうかを確認する方法

私の仮想マシンがネットワーク接続にvhost-netドライバを使用しているかどうかを確認する方法

KVM では、ネットワーク カード モデルはvirtio(最新) または以前e1000(使用されなくなった、エミュレートされた) に設定できます。 virtioでは、vhost-netドライバまたはqemu

vhost-netとqemuの違いは、パケットがゲストからホストに送信され、物理ネットワークカードに転送される方法です。

vhost-netモジュールは、virtioパケット処理タスクをユーザースペース(QEMUプロセス)からカーネル外(vhost-netドライバ)に移動して仮想化オーバーヘッドを減らすvirtioネットワーキングのためのカーネルレベルのバックエンドです。 vhost-net は virtio ネットワークインターフェイスでのみ動作します。vhost-net カーネルモジュールがロードされると、デフォルトで有効になります。すべてのvirtioインターフェイスに適用されますが、vhost-netを使用すると特定のワークロードのパフォーマンスが低下した場合は、インターフェイス設定で無効にできます。引用する

私の質問は、vhost-netモジュールがロードされたことをどのように確認しますか?一般的なコマンドはmodinfoここでも機能しますか?

答え1

どのカーネルモジュールがロードされているかを確認するには、このlsmodコマンドを使用します。

grepパイプ出力を使用して、さらに必要なlsmodものをフィルタリングできます。

例えば

# lsmod | grep net
vhost_net              24576  10
vhost                  45056  1 vhost_net
tap                    24576  1 vhost_net

ホストはvhost_netカーネルモジュールを使用しています。私は偶然10個のアダプタを設定し、出力にはifconfig10個のvnetアダプタがリストされています。出力の10は、lsmod | grepカーネルモジュールが使用された回数です。

関連情報