マルチキュー NIC は ECS インスタンスでの NIC の割り込みを異なる CPU へ転送します。 ネットワーク PPS および 帯域幅テストの結果は、1 つのキューの代わりに 2 つのキューを使うソリューションが、ネットワークパフォーマンスを 50% から 100% の間まで向上させることを示しています。

マルチキューをサポートする ECS インスタンス

インスタンスタイプファミリー」をご参照し、マルチキューをサポートするインスタンスタイプ、およびサポートされるキューの数を検索してください。

マルチキューをサポートするイメージ

Alibaba Cloud により提供されている以下の公開イメージはマルチキューをサポートしています。

イメージがマルチキューをサポートするかどうかは、オペレーティングシステムのメモリーアドレス幅には関係しません。
  • CentOS 6.8/6.9/7.2/7.3/7.4
  • Ubuntu 14.04/16.04
  • Debian 8.9
  • SUSE Linux Enterprise Server 12 SP1

SUSE Linux Enterprise Server 12 SP2 エディションのサポートは開発中です。 Windows 2012 R2 および Windows 2016 は招待制です。

Linux ECS インスタンス上の NIC へのマルチキューサポートの設定

CentOS 7.2 などの最新の Linux ディストリビューションの使用して、NIC へのマルチキューを設定することを推奨します。

ここでは、CentOS 7.2 を例にして、NIC へのマルチキューの設定方法を紹介します。 この例では、2 つのキューが設定され、NIC 名は "eth0" となります。

  • NIC がマルチキューをサポートするかどうかの確認のために、コマンド ethtool -l eth0 を実行します。

  • NIC へのマルチキューを有効化するため、コマンド ethtool -L eth0 combined 2 を実行します。

  • 複数の NIC を使用する場合は、それぞれの NIC を設定します。

    
    [root@localhost ~]# ethtool -l eth0
        Channel parameters for eth0:
        Pre-set maximums:
        RX: 0
        TX: 0
        Other: 0
    Combined: 2 # この行は最大で2つのキユーが設定できることを示しています。
    現在のハードウェア設定:
        RX: 0
        TX: 0
        Other: 0
    Combined: 1 # 1つのキューが現在実施されていることを示しています。
    [root@localhost ~]# ethtool -L eth0 combined 2 # 現在 2 つのキューを使うために eth0 を設定しています。
  • 複数の CPU コア上で NIC 割り込みの割り当てをシステムが自動的に調整するように、irqbalance サービスを有効化することを推奨します。 コマンド systemctl start irqbalance (この機能は、CentOS 7.2 ではデフォルトで有効化されています)を実行します。

  • マルチキュー機能を有効化後、ネットワークパフォーマンスが期待されるほど向上しない場合は、RPS 機能を有効化できます。 そのためには、以下のシェルスクリプトをご参照ください。

    
        #!/bin/bash
        cpu_num=$(grep -c processor /proc/cpuinfo)
        quotient=$((cpu_num/8))
        if [ $quotient -gt 2 ]; then
            quotient=2
        elif [ $quotient -lt 1 ]; then
            quotient=1
        fi
        for i in $(seq $quotient)
        do
            cpuset="${cpuset}f"
        done
        for rps_file in $(ls /sys/class/net/eth*/queues/rx-*/rps_cpus)
        do
            echo $cpuset > $rps_file
        done

Windows ECS インスタンス上の NIC へのマルチキューサポートの設定

パフォーマンス向上のためのマルチキューサポートのサインアップおよびテストのために Windows ユーザーを招待しています。 全体のパフォーマンス向上は、Linux システムのパフォーマンス向上と比べると同じようには向上されないことをご注意ください。

Windows インスタンスをお使いの場合、NIC のマルチキュー機能を使うためにドライバーのインストールが必要です。

Windows システムへのドライバーのインストールは、以下の手順に従ってください。

  1. インストールパッケージのリクエストおよびダウンロードは、チケットを起票し、サポートセンターへお問い合わせください
  2. ドライバインストールパッケージの解凍 Windows 2012/2016 システムには、"Win8/amd64" フォルダーにあるドライバーを使用します。
  3. NIC ドライバーの更新
    1. [デバイスマネージャー] の [ネットワークアダブター] をクリックします。 Device Manager > Network adapters.
    2. [Red Hat VirtIO イーサネットアダプター] を右クリックし、 [ドライバーの更新] をクリックします。
    3. 解凍した "Win8/admin64" ディレクトリの "driver" ディレクトリを選択し、ドライバーを更新します。
  4. マルチキュー機能を有効にするため、ドライバーをアップグレード後に Windows システムを再起動します。