NIC(ネットワークインターフェースカード)の速度

NIC速度

NIC(ネットワークインターフェースカード)の性能とボトルネック|通信速度に与える影響

ネットワークの通信速度を考える際、多くの人は回線速度やLANケーブル、スイッチの性能に注目します。 しかし、実際の通信性能において非常に重要な役割を持つのがNIC(ネットワークインターフェースカード)です。

NICは、PCやサーバとネットワークを接続するためのインターフェースであり、 データの送受信を担う最前線のコンポーネントです。 どれだけ高速なネットワークを用意しても、NICの性能が不足していれば通信速度は頭打ちになります。

本記事では、NICの基本構造から性能指標、ボトルネックとなる要因、 高速通信環境での最適な設計ポイントまで、エンジニア向けに詳しく解説します。

NICとは何か

NIC(Network Interface Card)は、コンピュータとネットワークを接続するためのハードウェアです。 デスクトップPCでは拡張カードとして、ノートPCではオンボード機能として搭載されています。

NICは、物理層とデータリンク層の機能を主に担当し、 Ethernetフレームの生成・解析、MACアドレス管理、エラーチェックなどを行います。

また、現代のNICは単なるインターフェースにとどまらず、 CPU負荷軽減やパケット処理の高速化を目的とした多くの機能を備えています。

NICの主な性能指標

NICの性能を評価する際には、単に「1Gbps」や「10Gbps」といったリンク速度だけでは不十分です。 以下のような複数の指標を総合的に見る必要があります。

1. リンク速度

最も基本的な性能指標がリンク速度です。 これはNICが対応する物理的な通信速度を示します。

  • 100Mbps
  • 1Gbps(1000BASE-T)
  • 10Gbps(10GBASE-T / SFP+)
  • 25Gbps / 40Gbps / 100Gbps

ただし、リンク速度はあくまで最大値であり、実際の通信速度(スループット)とは異なります。

2. スループット性能

スループットは、NICが実際に処理できるデータ量です。 理論上のリンク速度に対して、どれだけ効率よくデータを処理できるかが重要です。

高性能なNICでは、CPUへの負荷を減らしながら高いスループットを維持できます。

3. PPS(Packets Per Second)

PPSは、NICが1秒間に処理できるパケット数を示します。 小さなパケットを大量に扱う場合、この指標が非常に重要になります。

たとえば、64バイトの小さなパケットを大量に処理する場合、 帯域よりもPPS性能がボトルネックになることがあります。

4. レイテンシ

NIC自身の処理遅延も通信全体のレイテンシに影響します。 特に高頻度トレードやリアルタイム処理では、NICの遅延が重要な要素になります。

NICがボトルネックになる理由

NICは単なる「線の入り口」ではなく、パケット処理を行う重要な処理装置です。 そのため、以下のような理由でボトルネックになることがあります。

1. CPU依存のパケット処理

NICが処理しきれないパケットは、CPUに処理が委ねられます。 高トラフィック環境ではCPU使用率が上昇し、結果として通信速度が低下します。

特に安価なNICでは、パケット処理の多くをCPUに依存しているため、 高速通信時に性能が出ないことがあります。

2. 割り込み処理の限界

パケット受信時、NICはCPUに割り込みを発生させます。 高トラフィック環境では割り込みが頻発し、CPUが処理しきれなくなることがあります。

これを改善するために、現代のNICでは割り込みコアレッシング(まとめて通知する仕組み)が使われています。

3. バス帯域の制限

NICはPCIeバスを通じてCPUと接続されます。 このバス帯域が不足していると、NICの性能を十分に引き出せません。

PCIe Gen3 x1 ≒ 約1Gbps〜2Gbps程度
PCIe Gen3 x4 ≒ 約8Gbps以上

→ 10Gbps NICではx4以上が必要

つまり、NIC自体が10Gbps対応でも、接続スロットがボトルネックになる場合があります。

4. ドライバとOSの制限

NICの性能は、ハードウェアだけでなくドライバやOSの設定にも依存します。 適切なドライバが使われていない場合、本来の性能が発揮されません。

また、LinuxやWindowsのネットワークスタックの設定によっても性能が変わります。

NICの高速化技術

現代のNICには、CPU負荷を軽減し、通信性能を向上させるためのさまざまな機能があります。

1. オフロード機能

オフロードとは、CPUが行う処理の一部をNICに任せる機能です。

  • TCPオフロード(TSO)
  • チェックサムオフロード
  • Large Receive Offload(LRO)

これにより、CPU負荷を軽減しながら高スループットを実現できます。

2. RSS(Receive Side Scaling)

RSSは、受信パケットを複数のCPUコアに分散して処理する技術です。 マルチコアCPU環境での性能向上に重要です。

3. DPDK・カーネルバイパス

高性能な環境では、OSカーネルを経由せずにNICと直接通信する仕組みが使われます。

  • DPDK(Data Plane Development Kit)
  • SR-IOV

これにより、極めて低レイテンシかつ高スループットな通信が可能になります。

実務でのボトルネック例

ケース1:1Gbps NICによる制限

回線が10Gbpsでも、PCのNICが1Gbpsなら最大速度は1Gbpsです。

ケース2:CPU負荷による速度低下

NICがパケット処理をCPUに依存している場合、 CPU使用率が100%近くになりスループットが低下します。

ケース3:仮想環境でのNIC制限

仮想マシンでは、仮想NICの性能がボトルネックになることがあります。 特に古い仮想NICドライバでは性能が低くなる傾向があります。

NIC選定のポイント

NICを選定する際には、以下の観点が重要です。

  • 必要なリンク速度(1G / 10G / 25G など)
  • PCIeバスの対応状況
  • オフロード機能の有無
  • 対応OSとドライバ
  • 仮想化対応(SR-IOVなど)
  • 低レイテンシ要件

特にサーバ用途では、単純な速度だけでなく、 PPS性能やCPU負荷も考慮する必要があります。

まとめ

NICはネットワーク通信の入口であり、通信性能に大きな影響を与える重要なコンポーネントです。

通信速度はリンク速度だけで決まるわけではなく、 スループット、PPS、CPU負荷、バス帯域、ドライバなど複数の要素によって決まります。

高速ネットワーク環境では、NICがボトルネックになるケースも多く、 適切な機種選定と設定が不可欠です。

ネットワークが遅いと感じた場合は、回線やスイッチだけでなく、 NICの性能や設定も確認することで、原因特定と改善につながります。

今後のネットワーク設計では、NICを単なる接続インターフェースとしてではなく、 通信性能を左右する重要な要素として捉えることが重要です。