LoginSignup
47
51

More than 5 years have passed since last update.

DPDK 入門資料

Last updated at Posted at 2016-10-09
1 / 14

Outline

  • Motivation
  • DPDK 概要
  • DPDK 誕生の背景
  • DPDKの動作概観
  • DPDKのユースケース
  • HOW TO USE DPDK
  • Reference
  • まとめ

Motivation

DPDK (Data Plane Development Kit)が発表された2014年からだいぶ月日は立っています。
ネットワーク業界でネットワークスタックの高速化話すると言葉を聞かないことがないDPDKについて、簡単ですが、自分の理解をまとめてみようと思います。


DPDK 概要

  • Data Plane Development Kit の略
  • ネットワーク処理に特化したアプリケーションを作成するためのソフトウェアライブラリ
  • 特定のCPUコアをネットワークスタック処理するためのアプリケーションに割り当てて、集中的にアプリケーションがネットワーク処理を実行する
    • DPDKで割り当てられたCPUは、NICの受信データを割り込み駆動ではなく、ポーリングして監視しているところがポイント
  • 余談:Intel DPDKとDPDKは同等の意。Intelが途中からDPDKに変更

DPDK 誕生の背景

  • 従来
    • 専用機器を作ってパケット処理を実行
  • 近年

    • クラウド技術の流れを受けて、専用機器で実行していたパケット処理をソフトウェア実行することが流行り始める
    • ソフトウェア化による大幅な性能低下が浮上
      • e.g., 10Gbps NICのパケット処理不可能
  • ソフトウェアによる高速ネットワーク処理を実現するため、Intelが提案したのが、DPDK


ソフトウェアでパケット処理ときのオーバヘッド

例.カーネルで受信パケットカウント処理を実行する場合の処理シーケンス
1. NICがカーネルに割り込み発生させる
2. カーネルが割り込み処理するために、コンテキストスイッチを発生させる
3. カーネルがNICに対応するDriver処理を実行する
4. カーネルがネットワークスタック処理を実行する
5. カーネルがパケットカウント処理(アプリケーション)を実行する

処理2処理3, 処理4のソフトウェアオーバヘッドが大きい


DPDKの動作概観

アプリケーションはDPDKが提供するライブラリを使用することで、NICの送受信データとアプリケーション間でダイレクトにクセス可能

alt


DPDKのユースケース [1/2]

下記のリンクに設定方法、サンプルコードと一緒にユースケースがリスト化されているので便利
http://dpdk.org/doc/guides-16.04/sample_app_ug/index.html


DPDKのユースケース [2/2]

例:Software Router

  • 用途:性能評価
  • アプリケーションでネットワークスタック生成を行うことで、キャッシュなど最適化がアプリケーションレベルで操作できるため、ソフトウェアオーバヘッドを最小化できる
  • イメージ図 alt

HOW TO USE DPDK

下記のスライドがよくまとまっている
http://blog.slankdev.net/2016/05/08/dpdk-setup/


Reference


まとめ

  • DPDK
    • 専有的にCPUコアをアプリケーション処理に割り当てることで実現するネットワーク処理を高速化するためのツールキット
    • ネットワークスタック処理の高速化手段として期待されている

用語説明

  • Hugepages: ユーザスペースの1pageのサイズを大きくする仕組み
  • PMD: CPUがドライバをポーリングするために使用するドライバーをPMD
  • UIO: ユーザスペースにドライバを作成するための機能

47
51
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
47
51