情報処理学会研究報告
IPSJ SIG Technical Report

サイドカープロキシ環境下におけるマイクロサービスの遅延時間分析とFPGA SmartNIC による性能改善の検討

河野竜也 1

坂本龍一 1

概要：マイクロサービスアーキテクチャにおけるサイドカープロキシの導入は、セキュリティやトラフィック管理などの点で重要な役割を果たす。しかし、その一方でプロキシの経由によりアプリケーションの応答時間に遅延が発生する可能性がある。そこで本研究では、サイドカープロキシの有無におけるアプリケーションの性能を比較・分析し、その影響を評価した。さらに、FPGA SmartNIC の導入により性能がどの程度向上するのかを探求する。

キーワード ：マイクロサービス、サービスメッシュ、SmartNIC

1. はじめに

2. Bookinfo アプリケーション

近年、マイクロサービスアーキテクチャは、Netflix や本研究では、マイクロサービスアーキテクチャの理解とUber をはじめとする多くの企業で導入が進んでおり、シス評価のために、具体的なサンプルとして Bookinfo アプリケ

テムの拡張性や保守性などの向上に貢献している。しかしーションを使用する。図１のように Bookinfo は、複数のマながら、マイクロサービスアーキテクチャは、サービス間イクロサービスから構成されるアプリケーションであり、の通信が複雑になるなどの課題を抱えている。この課題を各サービスは異なるプログラミング言語で実装されている。

解決するための技術として、サービスメッシュが注目され具体的に Bookinfo アプリケーションは、以下の 4 つのマイている。サービスメッシュは、サービス間の通信を効率化

クロサービスで構成されている。

し、負荷分散、トレーシングなどの機能を提供している。

1.Productpage:本の詳細やレビューをユーザーに表示する

サービスメッシュについてディープラーニングを用いた異サービス。

常検知[1]など、現在でもさまざまな研究がなされている。

2.Details:本の詳細情報を提供するサービス。

しかしながら、サービスメッシュの導入も良いことばか

3.Reviews:本のレビューを提供するサービス。このサービりではない。サービスメッシュが使用するサイドカーパタ

スは、３つのバージョンが存在し、異なるレビュー結果をーンは、通信の経由が増えることから遅延が発生する可能返すことができ、サイドカーによってロードバランシング性がある。本研究では、この遅延増加に焦点を当て、マイされる。

クロサービスアプリケーションにおけるサイドカープロキ

4.Ratings: 製品の評価を提供するサービス。

シの影響を調査する。具体的には、Bookinfo と呼ばれるマ

図１には、各サービスに Envoy プロキシが挟まれており、イクロサービスアプリケーションに対し、サイドカープロ

これにより通信の経由が増え、遅延が発生する可能性があキシ等をいっさい入れない理想的な場合と Envoy プロキシる。この Bookinfo アプリケーションを用いてセクション 3を入れた場合の実行時間を測り、遅延時間を評価する。

では Envoy を入れた場合と入れない場合の遅延時間の分析

また、この遅延問題の解決策として、SmartNIC の活用可能性についても考察する。SmartNIC はネットワーク処理のを行い、セクション 4 では SmartNIC を入れた場合の性能改善の考察を行う。

オフロードで利用される技術であり、これまでにも推薦システムの効率化[2]や eBPF を SmartNIC にオフロードする[3]などさまざまな研究でその有効性が示されている。このような効果が認められていながら、これまで SmartNIC をサイドカープロキシのオフロードに適用させるという研究はされてこなかった。そこで本研究では、SmartNIC をマイクロサービスの領域に応用し、サイドカープロキシの処理をオフロードする方法を探求する。これにより、サービスメッシュにおける通信の遅延時間がどれだけ改善されるのかを定量的に評価することを目指す。

図１

Envoy を入れた Bookinfo アプリケーション

1 東京工業大学
Tokyo Institute of Technologyⓒ2023 Information Processing Society of Japan1

情報処理学会研究報告
IPSJ SIG Technical Report
オフロードするためによく用いられ、それは Envoy プロキ
シの処理をオフロードするためにも活用できる可能性がある。本研究では、初期評価として単純にパスを通すだけのSmartNIC のプロキシを用意し、SmartNIC を通さない時と比べた時の性能の差を測定する。具体的には、python のhttpserver を用意して SmartNIC を通した時と通さない時の時間の差について curl を用いて測定する。また今回の実験
では本研究室で開発を行っている SmartNIC を使用し、この SmartNIC は単一のサービスの Envoy プロキシをオフロ
図 2 コネクション数を変えた時の 90%レイテンシー

3. Envoy プロキシによる遅延時間の分析ードする[4]などの有用性が示されている。
結果は次のようになった。SmartNIC を通さないものは、4.0ms,SmartNIC を通したものは 4.1ms となり、0.1ms の差

Bookinfo アプリケーションを用いて Envoy プロキシを入になった。これは、図２で見た Envoy プロキシによる遅延れた場合と入れない場合、また kubernetes で istio を入れたに比べれば微量なものである。したがって、Bookinfo など場合と入れない場合の実行時間の差を測定した。図２はそのマイクロサービスアプリケーションにおいてプロキシのの結果である。以下は各要素の説明である。

オフロードができれば、相当な実行時間の短縮になること

1.docker-compose_without_envoy( 緑 線 ): docker-compose にが期待される。今後の研究では、実際にマイクロサービスenvoy を入れない真にアプリのみの状態

アプリケーションに SmartNIC を入れて時間を測定するこ

2.docker-compose_with_envoy_inbound(黒線):docker-composeとで、性能改善ができることを実証していきたい。に inbound だけ envoy を入れたもの
3.docker-compose_with_envoy(黄線): docker-compose に対して inbound と outbound の両方に envoy を入れたもの

5. おわりにマイクロサービスにおけるサイドカープロキシの遅延に4.k8s_without_istio(赤線): kubernetes に istio を入れないもの

ついて調査した。マイクロサービスのサンプルアプリであ5.k8s_with_istio(青線): kubernetes に istio を入れたもの

る Bookinfo において、1 コネクションでは Envoy プロキシを入れることによって 2 倍以上の実行時間がかかってしま

1 コネクションにおいて理想的な場合の docker-compose

い、大きく性能悪化を招くことがわかった。この遅延を減（緑線）は 16.51ms であった。それに対して Envoy を inbound

らすことはアプリケーションのユーザーエクスペリエンスだけ入れたもの（黒線）は 38.11ms となり 2 倍以上の実行を向上させる上で非常に重要である。また SmartNIC にプ時間となり、outbound も入れたもの（黄線）においてはロキシの処理をオフロードさせることによってこの遅延を58.75ms となり 3 倍以上の実行時間となった。一方で減らせないかについて考察した。

kubernetes に istio を入れないもの(赤線)では 35.24ms、istio

謝辞を入れたもの(青線)は 81.5ms となりこちらもサービスメッ

技術総合開発機構(NEDO)の「ポスト 5G 情報通信システシュを入れることによって 2 倍以上の実行時間となった。

ム基盤強化研究開発事業」(JPNP20017)の委託事業の結果得コネクション数を 8 に増やすと理想的な場合(緑線)とられたものです。

inbound に Envoy を入れたもの(黒線)や outbound にも Envoy

参考文献を入れたもの(黄線)がほぼ同じ実行時間となっているが、[1] ZHANG, Chenxi, et al. DeepTraLog: Trace-log. combined

これは理想的な場合(緑線)ではロードバランシングができ

microservice anomaly detection through graph-based deep

ず、一つの Reviews サービス(今回は Reviews-v3 のみ)にリ

learning. In: Proceedings of the 44th International Conference

クエストが集中しているからだと考えられる。以上のこと

on Software Engineering. 2022. p. 623-634.

から Bookinfo アプリケーションにおいては、Envoy プロキ

この成果は、国立研究開発法人新エネルギー・産業[2] JIANG,Wenqi,

etal.

Fleetrec:Large-scale.

シを入れることによってアプリケーションの性能を大きくRecommendation inference on hybrid gpu-fpga clusters.

下げてしまうことが判明した。したがってサイドカーによIn: Proceedings of the 27th ACM SIGKDD Conference on

る遅延を減らすことは、アプリケーションの性能を大幅にKnowledge Discovery & Data Mining. 2021. p. 3097-3105.

向上させることにつながる。

4. SmartNIC による性能改善の可能性
サイドカープロキシの遅延を減らすための SmartNIC の可能性について考察する。SmartNIC はネットワーク処理をⓒ2023 Information Processing Society of Japan[3] BRUNELLA, Marco Spaziani, et al. hXDP: Efficient software.
packet processing on FPGA NICs. Communications of theACM, 2022, 65.8: 92-100.

[4] Gongyu Deng et al. Run-time pluggable packt processing on
SmartNIC with WebAssembly. SWoPP 2023

2