dpdkに提案してみた ~高速化技術とクラウド 第3回~
近年のネットワーク利用状況と高速化技術について解説
DPDK入門
- 2021年10月14日公開
NTTテクノクロスの山下です。前回ブログに引き続き、DPDKコミュニティ(dpdk.org)に対するNTTテクノクロスのコミュニティ活動の一部を具体的に紹介します。
今回お伝えしたいこと
NTTテクノクロスは2020年度、DPDKコミュニティ(詳細は前回ブログを参照)に、CPU使用率を把握する改善案を提案しました。今回はDPDKコミュニティとのやり取りをご紹介したいと思います。
DPDKとは
DPDKに関してご存じない方もいるかとおもうので簡単に説明します。第1回ブログで紹介したように、近年は、様々なサービスがネットワークを利用しています。
近年はネットワークに接続する機器数やネットワークを流れるデータ量も爆発的に増えています。このような場合に、ネットワークは混雑しやすく、例えば1例としては動画サイト利用者は、画面が固まったようにみえたりしてストレスをかんじてしまうことが考えられます。
DPDKを導入することにより、ネットワークの処理の高速化や大容量化が行えるため、動画サイト利用者は快適にサービス利用をすることができます。(関連記事はこちら)
図1.DPDK導入前と導入後の違い
NTTテクノクロスのDPDKコミュニティに対する提案活動について
前述のようにDPDKを導入することによるメリットはネットワークの高速化・大容量化です。これは、近年のネットワークの利用状況を考えると非常に大きなメリットのあることです。
ただし、ひとつデメリットがあります。
DPDKアプリケーションのCPU使用率を監視することが難しいことです。
CPU使用率を監視して必要に応じて増設を行うことが大切だからです。
そこで、NTTテクノクロスでは簡単にDPDKアプリケーションのCPU使用率を容易に監視できる提案を行いました。
図2.NTTテクノクロスの提案事例
注:DPDKでは、カーネル割り込みによるパケット受信を利用せず、NIC(ネットワークインタフェースカード)へのポーリングを繰り返すことにより高速なパケット処理を実現している。このため従来のCPU監視方法では実際のパケット送受信量にかかわらずCPU利用率が100%に見えてしまう
DPDKコミュニティへの提案時に気をつけた点
2021年2月のDPDKリリースをターゲットにして提案を行いました。
提案時に、気をつけた点は以下です。
- ・DPDKのソースコードは変化するので、動向をウォッチ
- ・DPDK全体や、主要ソースコードツリーのメンテナと知り合いになっておく(DPDKイベントやMLで交流をしておく)
注:メンテナとは、ソースコードを管理(メンテナンス)する人のことであり、オープンソースコミュニティにおいては機能追加の承認などを決定する役割をもちます。
提案の結果
提案の結果、メーリングリスト上で3社から13件のコメントをもらい、議論を続けました(以下にメーリングリスト上の議論を抜粋)。DPDK21.02のリリースのための期間中に議論が完了しなかったため、このリリースには提案は盛り込まれませんでした。今後、より良い案があれば提案活動を行います。
図3.MLでの議論からの抜粋
この活動を通して感じたことは、以下の3点です。
- ・提案に賛同するコミュニティメンバがいる一方、既存機能でカバーされていると考えるメンバもいて、コンセプトレベルで提案に納得していない人たち(特にソースのメンテナ)がいるとパッチは採用されない
- ・事前のコミュニティ(キーパーソンあるいはキーとなる企業)に提案の有効性を説明し、納得させることができればよりよかった
- ・すでに習得済みのバグ修正パッチ投稿ノウハウ以外に「ソースコード改善提案」の流れについて習得することができた
次回予告
今回は、DPDKコミュニティと弊社の活動ついて紹介しました。次回は、最近のDPDK動向についてご紹介します。
[著者プロフィール]
フューチャーネットワーク事業部 第一ビジネスユニット
山下 英之(YAMASHITA HIDEYUKI)