VMware ESX、Linux KVM、Citrix Hypervisor での NetScaler VPX パフォーマンスの最適化

最終公開日 : Sep 25, 2026
NetScaler VPX のパフォーマンスは、ハイパーバイザー、割り当てられたシステムリソース、およびホスト構成によって大きく異なります。目的のパフォーマンスを達成するには、まず VPX データシートの推奨事項に従い、次にこのドキュメントで提供されているベストプラクティスを使用してさらに最適化してください。

VMware ESX ハイパーバイザー上の NetScaler VPX インスタンス

このセクションでは、VMware ESX ハイパーバイザー上の NetScaler VPX インスタンスの最適なパフォーマンスを実現するのに役立つ、構成可能なオプションと設定、およびその他の提案の詳細について説明します。

ESX ホストでの推奨構成

E1000、VMXNET3、SR-IOV、および PCI パススルーネットワークインターフェイスを備えた VPX で高いパフォーマンスを達成するには、次の推奨事項に従ってください。
  • ESX ホストにプロビジョニングされる仮想 CPU (vCPU) の総数は、ESX ホスト上の物理 CPU (pCPU) の総数以下である必要があります。
  • 良好な結果を得るには、ESX ホストに対して非均一メモリアクセス (NUMA) アフィニティと CPU アフィニティを設定する必要があります。
    – Vmnic の NUMA アフィニティを見つけるには、ローカルまたはリモートでホストにログインし、次のように入力します。
    #vsish -e get /net/pNics/vmnic7/properties | grep NUMA
    Device NUMA Node: 0
    • VM の NUMA および vCPU アフィニティを設定するには、VMware ドキュメント を参照してください。

E1000 ネットワークインターフェイスを備えた NetScaler VPX

VMware ESXホストで以下の設定を実行します。
  • VMware ESXホストで、1つのpNIC vSwitchから2つのvNICを作成します。複数のvNICを作成すると、ESXホスト内に複数の受信(Rx)スレッドが作成されます。これにより、pNICインターフェイスのRxスループットが向上します。
  • 作成した各vNICについて、vSwitchポートグループレベルでVLANを有効にします。
  • vNICの送信(Tx)スループットを向上させるには、vNICごとにESXホストで個別のTxスレッドを使用します。以下のESXコマンドを使用します。
    • ESXバージョン5.5の場合:
      esxcli system settings advanced set –o /Net/NetTxWorldlet –i
    • ESXバージョン6.0以降の場合:
      esxcli system settings advanced set -o /Net/NetVMTxType –i 1
  • vNICのTxスループットをさらに向上させるには、デバイス(NIC)キューごとに個別のTx完了スレッドとRxスレッドを使用します。以下のESXコマンドを使用します。
    esxcli system settings advanced set -o /Net/NetNetqRxQueueFeatPairEnable -i 0
注:
更新された設定を適用するには、VMware ESXホストを再起動してください。

pNICあたり2つのvNICの展開

以下は、ネットワークパフォーマンスを向上させるpNICあたり2つのvNIC展開モデルのサンプル構成と構成コマンドです。
pNICあたり2つのvNICの展開
NetScaler VPXのサンプル構成:
前述のサンプル構成図に示す展開を実現するには、NetScaler VPXインスタンスで以下の構成を実行します。
  • クライアント側で、SNIP (1.1.1.2) をネットワークインターフェイス1/1にバインドし、VLANタグモードを有効にします。
    bind vlan 2 -ifnum 1/1 –tagged
    bind vlan 2 -IPAddress 1.1.1.2 255.255.255.0
  • サーバー側で、SNIP (2.2.2.2) をネットワークインターフェース 1/1 にバインドし、VLAN タグモードを有効にします。
    bind vlan 3 -ifnum 1/2 –tagged
    bind vlan 3 -IPAddress 2.2.2.2 255.255.255.0
  • HTTP仮想サーバー (1.1.1.100) を追加し、サービス (2.2.2.100) にバインドします。
    add lb vserver v1 HTTP 1.1.1.100 80 -persistenceType NONE -Listenpolicy None -cltTimeout 180
    add service s1 2.2.2.100 HTTP 80 -gslb NONE -maxClient 0 -maxReq 0 -cip DISABLED -usip NO -useproxyport YES -sp ON -cltTimeout 180 -svrTimeout 360 -CKA NO -TCPB NO -CMP NO
    bind lb vserver v1 s1
注:
ルートテーブルに次の2つのエントリを含めるようにしてください。
  • ゲートウェイがSNIP 1.1.1.2を指す1.1.1.0/24サブネット
  • ゲートウェイがSNIP 2.2.2.2を指す2.2.2.0/24サブネット

VMXNET3ネットワークインターフェースを備えたNetScaler VPX

VMXNET3ネットワークインターフェースを備えたVPXで高いパフォーマンスを実現するには、VMware ESXホストで次の設定を行います。
  • 1つのpNIC vSwitchから2つのvNICを作成します。複数のvNICはESXホストで複数のRxスレッドを作成します。これにより、pNICインターフェースのRxスループットが向上します。
  • 作成した各vNICについて、vSwitchポートグループレベルでVLANを有効にします。
  • vNICの送信 (Tx) スループットを向上させるには、vNICごとにESXホストで個別のTxスレッドを使用します。次のESXコマンドを使用します。
    • ESXバージョン5.5の場合:
    esxcli system settings advanced set –o /Net/NetTxWorldlet –i
    • ESXバージョン6.0以降の場合:
    esxcli system settings advanced set -o /Net/NetVMTxType –i 1
VMware ESXホストで、次の構成を実行します。
  • VMware ESXホストで、1つのpNIC vSwitchから2つのvNICを作成します。複数のvNICはESXホストで複数のTxおよびRxスレッドを作成します。これにより、pNICインターフェースのTxおよびRxスループットが向上します。
  • 作成した各vNICについて、vSwitchポートグループレベルでVLANを有効にします。
  • vNICのTxスループットを向上させるには、デバイス(NIC)キューごとに個別のTx完了スレッドとRxスレッドを使用します。次のコマンドを使用します。
    esxcli system settings advanced set -o /Net/NetNetqRxQueueFeatPairEnable -i 0
  • VMの構成に次の設定を追加して、vNICごとに1つの送信スレッドを使用するようにVMを構成します。
    ethernetX.ctxPerDev = "1"
  • VMの構成に次の設定を追加して、vNICごとに最大8つの送信スレッドを使用するようにVMを構成します。
    ethernetX.ctxPerDev = "3"
    注:
    vNICあたりの送信スレッドを増やすと、ESXホストでより多くのCPUリソース(最大8つ)が必要になります。上記の構成を行う前に、十分なCPUリソースが利用可能であることを確認してください。
注:
更新された設定を適用するには、VMware ESXホストを再起動してください。
VMXNET3をpNICあたり2つのvNIC展開として構成できます。詳細については、「pNICあたり2つのvNIC展開」を参照してください。

VMXNET3デバイスのVMware ESXでマルチキューおよびRSSサポートを構成する

デフォルトでは、VMXNET3デバイスは8つのRxおよびTxキューのみをサポートします。VPX上のvCPUの数が8を超えると、VMXNET3インターフェイス用に構成されたRxおよびTxキューの数はデフォルトで1に切り替わります。ESXで特定の構成を変更することにより、VMXNET3デバイス用に最大19のRxおよびTxキューを構成できます。このオプションにより、VPXインスタンスのvCPU全体でのパケットのパフォーマンスと均一な分散が向上します。
注:
NetScalerリリース13.1ビルド48.x以降、NetScaler VPXはVMXNET3デバイスのESXで最大19のRxおよびTxキューをサポートします。
前提条件:
VMXNET3デバイスのESXで最大19のRxおよびTxキューを構成するには、次の前提条件が満たされていることを確認してください。
  • NetScaler VPX のバージョンは 13.1 ビルド 48.X 以降です。
  • NetScaler VPX は、VMware ESX 7.0 以降でサポートされているハードウェアバージョン 17 以降の仮想マシンで構成されています。
8 を超える Rx および Tx キューをサポートするように VMXNET3 インターフェイスを構成する:
  1. 仮想マシン構成ファイル (.vmx) を開きます。
  2. ethernetX.maxTxQueues と ethernetX.maxRxQueues の値を構成して、Rx および TX キューの数を指定します (X は構成する仮想 NIC の数です)。構成されるキューの最大数は、仮想マシン内の vCPU の数を超えてはなりません。
    注:
    キューの数を増やすと、ESX ホストのプロセッサオーバーヘッドも増加します。したがって、キューを増やす前に、ESX ホストに十分な CPU リソースがあることを確認してください。キューの数がパフォーマンスのボトルネックとして特定されるシナリオでは、サポートされるキューの最大数を増やすことができます。このような状況では、キューの数を徐々に増やすことをお勧めします。たとえば、8 から 12、次に 16、次に 20、というように増やします。最大制限まで直接増やすのではなく、各設定でパフォーマンスを評価してください。

SR-IOV および PCI パススルーネットワークインターフェイスを備えた NetScaler VPX

SR-IOV および PCI パススルーネットワークインターフェイスを備えた NetScaler VPX で高いパフォーマンスを実現するには、「ESX ホストでの推奨構成」を参照してください。

VMware ESXi ハイパーバイザーの使用ガイドライン

  • NetScaler VPX インスタンスは、サーバーのローカルディスクまたは SAN ベースのストレージボリュームに展開することをお勧めします。
    Performance Best Practices for VMware vSphere 6.5 ドキュメントの「VMware ESXi CPU Considerations」セクションを参照してください。以下はその抜粋です。
  • CPU またはメモリ要求の高い仮想マシンを、オーバーコミットされたホストまたはクラスターに展開することはお勧めしません。
  • ほとんどの環境では、ESXi は仮想マシンのパフォーマンスに影響を与えることなく、かなりのレベルの CPU オーバーコミットを許可します。ホストでは、そのホストの物理プロセッサコアの総数よりも多くの vCPU を実行できます。
  • ESXi ホストが CPU 飽和状態になった場合、つまり、ホスト上の仮想マシンやその他の負荷がホストが持つすべての CPU リソースを要求する場合、レイテンシに敏感なワークロードはうまく機能しない可能性があります。この場合、たとえば、一部の仮想マシンの電源をオフにするか、別のホストに移行する (または DRS に自動的に移行させる) ことで、CPU 負荷を軽減します。
  • NetScalerは、仮想マシン向けESXiハイパーバイザーの最新機能セットを利用するために、最新のハードウェア互換性バージョンを使用することを推奨します。ハードウェアとESXiバージョンの互換性の詳細については、VMwareドキュメントを参照してください。
  • NetScaler VPXは、レイテンシに敏感な高性能仮想アプライアンスです。期待されるパフォーマンスを発揮するには、アプライアンスはホスト上でvCPU予約、メモリ予約、およびvCPUピンニングを必要とします。また、ホストではハイパースレッディングを無効にする必要があります。ホストがこれらの要件を満たさない場合、以下の問題が発生する可能性があります。
    • 高可用性フェイルオーバー
    • VPXインスタンス内のCPUスパイク
    • VPX CLIへのアクセスが遅い
    • Pit bossデーモンのクラッシュ
    • パケットドロップ
    • 低スループット
  • 以下の2つの条件のいずれかが満たされる場合、ハイパーバイザーはオーバープロビジョニングされていると見なされます。
    • ホストにプロビジョニングされた仮想コア (vCPU) の総数が、物理コア (pCPU) の総数よりも多い。
    • プロビジョニングされたVMの総数が、pCPUの総数よりも多くのvCPUを消費する。
      インスタンスがオーバープロビジョニングされている場合、ハイパーバイザーのスケジューリングオーバーヘッド、バグ、またはハイパーバイザーの制限により、ハイパーバイザーはインスタンスに予約されたリソース(CPU、メモリなど)を保証できない可能性があります。この動作は、NetScalerのCPUリソース不足を引き起こし、「使用ガイドライン」の最初の項目で述べた問題につながる可能性があります。管理者は、ホストにプロビジョニングされるvCPUの総数がpCPUの総数以下になるように、ホストのテナンシーを減らすことを推奨します。
      例:
      ESXハイパーバイザーの場合、esxtopコマンド出力でVPX vCPUの%RDY%パラメータが0より大きい場合、ESXホストにはスケジューリングオーバーヘッドがあり、VPXインスタンスのレイテンシ関連の問題を引き起こす可能性があります。
      このような状況では、%RDY%が常に0を返すようにホストのテナンシーを減らしてください。または、リソース予約が尊重されない理由をトリアージするために、ハイパーバイザーベンダーに連絡してください。

パケットエンジンCPU使用率を制御するコマンド

ハイパーバイザーおよびクラウド環境におけるVPXインスタンスのパケットエンジン(非管理)CPU使用率の動作を制御するために、2つのコマンド(set ns vpxparamとshow ns vpxparam)を使用できます。
  • set ns vpxparam [-cpuyield (YES | NO | DEFAULT)] [-masterclockcpu1 (YES | NO)]
    各VMが、他のVMに割り当てられているが使用されていないCPUリソースを使用できるようにします。
    Set ns vpxparam パラメータ:
    -cpuyield: 割り当てられているが使用されていないCPUリソースを解放するか、解放しないかを指定します。
    • YES: 割り当てられているが使用されていないCPUリソースを、別のVMが使用できるようにします。
    • NO: すべてのCPUリソースを、それらが割り当てられているVMのために予約します。このオプションは、ハイパーバイザーおよびクラウド環境でVPX CPU使用率がより高いパーセンテージを示すことになります。
    • DEFAULT: いいえ。
    注:
    すべてのNetScaler VPXプラットフォームでは、ホストシステム上のvCPU使用率は100パーセントです。この使用率を上書きするには、set ns vpxparam –cpuyield YESコマンドを使用します。
    クラスターノードを「yield」に設定したい場合は、CCOで以下の追加設定を行う必要があります。
    • クラスターが形成されると、すべてのノードは「yield=DEFAULT」に設定されます。
    • 既に「yield=YES」に設定されているノードを使用してクラスターが形成された場合、ノードは「DEFAULT」のyieldを使用してクラスターに追加されます。
    注:
    クラスターノードを「yield=YES」に設定したい場合、クラスター形成後のみ設定可能で、形成前には設定できません。
    -masterclockcpu1: メインクロックソースをCPU0(管理CPU)からCPU1に移動できます。このパラメータには以下のオプションがあります。
    • YES: VMがメインクロックソースをCPU0からCPU1に移動することを許可します。
    • NO: VMはメインクロックソースとしてCPU0を使用します。デフォルトでは、CPU0がメインクロックソースです。
  • show ns vpxparam
    このコマンドは、現在のvpxparam設定を表示します。

Linux-KVMプラットフォーム上のNetScaler VPXインスタンス

このセクションでは、Linux-KVMプラットフォーム上でNetScaler VPXインスタンスの最適なパフォーマンスを実現するのに役立つ、設定可能なオプションと設定、およびその他の提案について詳しく説明します。

KVMのパフォーマンス設定

KVMホストで以下の設定を実行します。
lstopoコマンドを使用してNICのNUMAドメインを見つける:
VPXとCPUのメモリが同じ場所にピン留めされていることを確認してください。 以下の出力では、10G NIC「ens2」はNUMAドメイン#1に紐付けられています。
NUMAドメインからVPXメモリを割り当てます。
numactlコマンドは、メモリが割り当てられているNUMAドメインを示します。以下の出力では、約10 GBのRAMがNUMAノード #0から割り当てられています。
NUMAノードマッピングを変更するには、次の手順に従います。
  1. ホスト上のVPXの.xmlを編集します。
    /etc/libvirt/qemu/<VPX_name>.xml
  2. 次のタグを追加します。
    <numatune>
    <memory mode="strict" nodeset="1"/>    This is the NUMA domain name
    </numatune>
  3. VPXをシャットダウンします。
  4. 次のコマンドを実行します。
    virsh define /etc/libvirt/qemu/<VPX_name>.xml
    このコマンドは、NUMAノードマッピングを使用してVMの構成情報を更新します。
  5. VPXの電源をオンにします。次に、ホストでnumactl –hardwareコマンドの出力を確認し、VPXの更新されたメモリ割り当てを確認します。
    numactl hardwareコマンドの出力
VPXのvCPUを物理コアにピン留めします。
  • VPXのvCPUからpCPUへのマッピングを表示するには、次のコマンドを入力します
    virsh vcpupin <VPX name>virsh-vcpupinコマンドの出力
    vCPU 0~4は、物理コア 8~11にマッピングされています。
  • 現在のpCPU使用率を表示するには、次のコマンドを入力します。
    mpstat -P ALL 5
    mpstatコマンドの出力(/en-us/vpx/media/mpstat-output.png)
    この出力では、8は管理CPU、9~11はパケットエンジンです。
  • vCPUからpCPUへのピン留めを変更するには、2つのオプションがあります。
    • VPXの起動後、次のコマンドを使用して実行時に変更します。
      virsh vcpupin <VPX name> <vCPU id>  <pCPU number>
      virsh vcpupin NetScaler-VPX-XML 0 8
      virsh vcpupin NetScaler-VPX-XML 1 9
      virsh vcpupin NetScaler-VPX-XML 2 10
      virsh vcpupin NetScaler-VPX-XML 3 11
    • VPXに静的な変更を加えるには、以前と同様に.xmlファイルを編集し、次のタグを追加します。
      1. ホスト上のVPXの.xmlファイルを編集します
        /etc/libvirt/qemu/<VPX_name>.xml
      2. 次のタグを追加します。
        <vcpu placement='static' cpuset='8-11'>4</vcpu>
            <cputune>
                <vcpupin vcpu='0' cpuset='8'/>
                <vcpupin vcpu='1' cpuset='9'/>
                <vcpupin vcpu='2' cpuset='10'/>
                <vcpupin vcpu='3' cpuset='11'/>
            </cputune>
      3. VPXをシャットダウンします。
      4. 次のコマンドを使用して、NUMAノードマッピングでVMの構成情報を更新します。
        virsh define /etc/libvirt/qemu/ <VPX_name>.xml
      5. VPXの電源をオンにします。次に、ホストでvirsh vcpupin <VPX name>コマンドの出力を確認し、更新されたCPUピン留めを確認します。
ホスト割り込みのオーバーヘッドを排除する。
  • kvm_statコマンドを使用してVM_EXITSを検出します。
    ハイパーバイザーレベルでは、ホスト割り込みはVPXのvCPUがピン留めされているのと同じpCPUにマッピングされます。これにより、VPX上のvCPUが定期的に強制終了される可能性があります。
    ホスト上で実行されているVMによって行われたVM exitを見つけるには、kvm_statコマンドを使用します。
    [root@localhost ~]# kvm_stat -1  | grep EXTERNAL
    kvm_exit(EXTERNAL_INTERRUPT)  1728349 27738
    [root@localhost ~]#
    1+Mのオーダーで値が高い場合は、問題を示しています。
    単一のVMが存在する場合、期待される値は30~100Kです。それ以上の値は、1つ以上のホスト割り込みベクターが同じpCPUにマッピングされていることを示している可能性があります。
  • ホスト割り込みを検出し、ホスト割り込みを移行します。
    「/proc/interrupts」ファイルに対してconcatenateコマンドを実行すると、すべてのホスト割り込みマッピングが表示されます。1つ以上のアクティブなIRQが同じpCPUにマッピングされている場合、対応するカウンターが増加します。
    NetScaler VPXのpCPUと重複する割り込みを、未使用のpCPUに移動します。
    echo 0000000f > /proc/irq/55/smp_affinity
    0000000f - - > it is a bitmap, LSBs indicates that IRQ 55 can only be scheduled on pCPUs 0 – 3
  • IRQバランスを無効にします。
    IRQバランスデーモンを無効にして、その場で再スケジューリングが発生しないようにします。
    service irqbalance stop
    service irqbalance show - To check the status
    service irqbalance start - Enable if needed
    カウンターが多数ないことを確認するために、kvm_statコマンドを実行してください。

PVネットワークインターフェースを備えたNetScaler VPX

パラ仮想化 (PV)、SR-IOV、およびPCIeパススルーネットワークインターフェースを、pNICあたり2つのvNIC展開として構成できます。詳細については、「pNICあたり2つのvNIC展開」を参照してください。
PV (virtio) インターフェースの最適なパフォーマンスを得るには、次の手順に従います。
  • PCIeスロット/NICが属するNUMAドメインを特定します。
  • VPXのメモリとvCPUは、同じNUMAドメインにピン留めする必要があります。
  • Vhostスレッドは、同じNUMAドメイン内のCPUにバインドする必要があります。
仮想ホストスレッドを対応するCPUにバインドする:
  1. トラフィックが開始されたら、ホストでtopコマンドを実行します。
    topコマンドを実行します(/en-us/vpx/media/run-top-command.png)
  2. 仮想ホストプロセス(vhost-<pid-of-qemu>という名前)のアフィニティを特定します。
  3. 以下のコマンドを使用して、vHostプロセスを以前に特定したNUMAドメイン内の物理コアにバインドします。
    taskset –pc <core-id> <process-id>
    例:
    taskset –pc 12 29838
  4. NUMAドメインに対応するプロセッサコアは、以下のコマンドで特定できます。
    [root@localhost ~]# virsh capabilities | grep cpu
    <cpu>
        </cpu>
            <cpus num='8'>
                <cpu id='0' socket_id='0' core_id='0' siblings='0'/>
                <cpu id='1' socket_id='0' core_id='1' siblings='1'/>
                <cpu id='2' socket_id='0' core_id='2' siblings='2'/>
                <cpu id='3' socket_id='0' core_id='3' siblings='3'/>
                <cpu id='4' socket_id='0' core_id='4' siblings='4'/>
                <cpu id='5' socket_id='0' core_id='5' siblings='5'/>
                <cpu id='6' socket_id='0' core_id='6' siblings='6'/>
                <cpu id='7' socket_id='0' core_id='7' siblings='7'/>
            </cpus>

            <cpus num='8'>
            <cpu id='8' socket_id='1' core_id='0' siblings='8'/>
            <cpu id='9' socket_id='1' core_id='1' siblings='9'/>
            <cpu id='10' socket_id='1' core_id='2' siblings='10'/>
            <cpu id='11' socket_id='1' core_id='3' siblings='11'/>
            <cpu id='12' socket_id='1' core_id='4' siblings='12'/>
            <cpu id='13' socket_id='1' core_id='5' siblings='13'/>
            <cpu id='14' socket_id='1' core_id='6' siblings='14'/>
            <cpu id='15' socket_id='1' core_id='7' siblings='15'/>
            </cpus>

        <cpuselection/>
        <cpuselection/>
QEMUプロセスを対応する物理コアにバインドする:
  1. QEMUプロセスが実行されている物理コアを特定します。詳細については、前の出力を参照してください。
  2. 以下のコマンドを使用して、QEMUプロセスをvCPUをバインドするのと同じ物理コアにバインドします。
    taskset –pc 8-11 29824

SR-IOVおよびFortville PCIeパススルーネットワークインターフェイスを備えたNetScaler VPX

SR-IOVおよびFortville PCIeパススルーネットワークインターフェイスの最適なパフォーマンスを得るには、以下の手順に従ってください。
  • PCIeスロット/NICが属するNUMAドメインを特定します。
  • NetScaler VPXのメモリとvCPUは、同じNUMAドメインにピン留めする必要があります。
Linux KVMでのvCPUおよびメモリピンニングのVPX XMLファイルの例:
    <domain type='kvm'>
        <name>NetScaler-VPX</name>
        <uuid>138f7782-1cd3-484b-8b6d-7604f35b14f4</uuid>
        <memory unit='KiB'>8097152</memory>
        <currentMemory unit='KiB'>8097152</currentMemory>
        <vcpu placement='static'>4</vcpu>

    <cputune>
        <vcpupin vcpu='0' cpuset='8'/>
        <vcpupin vcpu='1' cpuset='9'/>
        <vcpupin vcpu='2' cpuset='10'/>
        <vcpupin vcpu='3' cpuset='11'/>
    </cputune>

    <numatune>
    <memory mode='strict' nodeset='1'/>
    </numatune>

    </domain>

Citrix Hypervisors 上の NetScaler VPX インスタンス

このセクションでは、Citrix Hypervisors 上で NetScaler VPX インスタンスの最適なパフォーマンスを実現するのに役立つ、構成可能なオプションと設定、およびその他の提案について詳しく説明します。

Citrix Hypervisors のパフォーマンス設定

「xl」コマンドを使用して NIC の NUMA ドメインを検索します。
xl info -n
VPX の vCPU を物理コアにピン留めします。
xl vcpu-pin <Netsclaer VM Name>  <vCPU id>  <physical CPU id>
vCPU のバインディングを確認します。
xl vcpu-list
NetScaler VM に 8 個を超える vCPU を割り当てます。
8 個を超える vCPU を構成するには、Citrix Hypervisor™ コンソールから次のコマンドを実行します。
xe vm-param-set uuid=your_vms_uuid VCPUs-max=16
xe vm-param-set uuid=your_vms_uuid VCPUs-at-startup=16

SR-IOV ネットワークインターフェイスを備えた NetScaler VPX

SR-IOV ネットワークインターフェイスの最適なパフォーマンスを得るには、次の手順に従います。
  • PCIe スロットまたは NIC が関連付けられている NUMA ドメインを特定します。
  • VPX のメモリと vCPU を同じ NUMA ドメインにピン留めします。
  • Domain-0 vCPU を残りの CPU にバインドします。

準仮想化インターフェースを備えた NetScaler VPX

最適なパフォーマンスを得るには、他のPV環境と同様に、pNICあたり2つのvNIC構成とpNICあたり1つのvNIC構成が推奨されます。
準仮想化 (netfront) インターフェースの最適なパフォーマンスを実現するには、次の手順に従います。
  • PCIe スロットまたは NIC が属する NUMA ドメインを特定します。
  • VPX のメモリと vCPU を同じ NUMA ドメインに固定します。
  • Domain-0 vCPU を同じ NUMA ドメインの残りの CPU にバインドします。
  • vNIC のホスト Rx/Tx スレッドを Domain-0 vCPU に固定します。
ホストスレッドを Domain-0 vCPU に固定する:
  1. Citrix Hypervisor ホストシェルで xl list コマンドを使用して、NetScaler VPX の Xen-ID を見つけます。
  2. 次のコマンドを使用してホストスレッドを特定します。
    ps -ax | grep vif <Xen-ID>
    次の例では、これらの値は以下を示します。
    • vif5.0 - XenCenter で VPX に割り当てられた最初のインターフェースのスレッド (管理インターフェース)。
    • vif5.1 - VPX に割り当てられた 2 番目のインターフェースのスレッドなど。
    xl list コマンドの出力
  3. 次のコマンドを使用して、スレッドをDomain-0 vCPUに固定します。
    taskset –pc <core-id> <process-id>
    例:
    taskset -pc 1 29189