Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
ISUCONでEnvoyを使えるか?
Aya (Igarashi) Ozawa
September 11, 2018
Technology
1
530
ISUCONでEnvoyを使えるか?
Cloud Native Meetup #4
https://cloudnative.connpass.com/event/97281/
Aya (Igarashi) Ozawa
September 11, 2018
Tweet
Share
More Decks by Aya (Igarashi) Ozawa
See All by Aya (Igarashi) Ozawa
明日から使える(?)逆引きKubernetes
ladicle
0
860
Recap: KubeCon+CloudNativeCon 2021 NA / Kubernetes Meetup Tokyo #47
ladicle
0
180
KubeCon+CloudNativeCon Europe 2020 Overview
ladicle
0
160
Think Design About Pretty kubectl Plugins
ladicle
0
180
Kubernetesを拡張して日々のオペレーションを自動化する
ladicle
17
6.9k
Integration with Tracing and Logging
ladicle
3
4.5k
Recap KubeCon + Cloud NativeCon North America 2018 Overview
ladicle
5
3.2k
Securing Clusters with Kubernetes Extensibility
ladicle
5
920
Recap API Machinery Deep Dive
ladicle
4
1.9k
Other Decks in Technology
See All in Technology
ユーザーテストガイドライン VERSION 2.0
kouzoukaikaku
0
1.3k
【Λ(らむだ)】WinActorから始めるいつのまにリスキリング / WinAtorライトニングトーク大会20230123
lambda
0
110
02_プロトタイピングの進め方
kouzoukaikaku
0
520
CES_2023_FleetWise_demo.pdf
sparkgene
0
120
【NGK2023S】 ノードエディタ形式の画像処理ツール「Image-Processing-Node-Editor」
kazuhitotakahashi
0
300
エアドロップ for オープンソースプロジェクト
epicsdao
0
390
03_ユーザビリティテスト
kouzoukaikaku
0
500
Hatena Engineer Seminar #23 「チームとプロダクトを育てる Mackerel 開発合宿」
arthur1
0
520
ECテックカンファレンス2023 EC事業部のモバイル開発2023
tatsumi0000
0
300
OCI技術資料 : ロード・バランサー 詳細 / Load Balancer 200
ocise
2
7.2k
Kaggleシミュレーションコンペの動向
nagiss
0
270
ML PM, DS PMってどんな仕事をしているの?
line_developers
PRO
1
240
Featured
See All Featured
GitHub's CSS Performance
jonrohan
1020
430k
How New CSS Is Changing Everything About Graphic Design on the Web
jensimmons
214
12k
What's new in Ruby 2.0
geeforr
336
30k
4 Signs Your Business is Dying
shpigford
171
20k
Three Pipe Problems
jasonvnalue
89
8.9k
The World Runs on Bad Software
bkeepers
PRO
59
5.7k
The Pragmatic Product Professional
lauravandoore
21
3.4k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
239
19k
The Web Native Designer (August 2011)
paulrobertlloyd
76
2.2k
Building Your Own Lightsaber
phodgson
96
4.9k
VelocityConf: Rendering Performance Case Studies
addyosmani
317
22k
The Invisible Customer
myddelton
113
12k
Transcript
ISUCONで Envoyを使えるか? Cloud Native Meetup #4 LT Aya Igarashi @Ladicle
@Ladicle Software Engineer - Z Lab Corp.
お題となるWebサービスを決められたレギュレーションの中で限界ま で高速化を図るチューニングバトル!!! 今週末は…
2016 はてなダイアリー風 似非マイクロサービス 2017 idobata風(chat app) サーバ3台構成 2018... ????? よりCloud
Nativeな構成に?
Envoy → Observability ISUCON → Measure + Tuning もしかして…
さっそくISUCON7の予選問題で試してみる(制限時間5h) https://github.com/Ladicle/isucon7-qualifier-envoy
ISUCON7予選問題 idobata風のチャットサービス • サーバ3台構成 (default: APPx2, DBx1) • 1core CPU
/1GB Memory • DBはMySQL • APPは複数の実装があるがGoを選択
構成を検討する Envoyをどこまで使うか? • 基本的にHTTPproxy/Tracing/Metricsだけ使う • Serverは3台固定で、動的制御が必要なものもない のでcontrole-planeは使わず, data-planeのEnvoy にstaticな設定ファイルのみ渡す •
tcp_proxyを使ってMySQLの前段にEnvoyを置いて もよいが、取得できるMetricsの恩恵に比べて構築 の手間が大きいため使わない
static_resources: listeners: - address: socket_address: address: 0.0.0.0 port_value: 80 filter_chains:
- filters: - name: envoy.http_connection_manager config: tracing: operation_name: ingress codec_type: auto stat_prefix: isubata_http route_config: name: isubata_route virtual_hosts: - name: isubata_all domains: - "*" routes: - match: prefix: "/" route: cluster: isubata1 decorator: operation: isubata1 http_filters: - name: envoy.router clusters: - name: isubata1 connect_timeout: 60s type: static lb_policy: round_robin hosts: - socket_address: address: 127.0.0.1 port_value: 5000 - name: jaeger connect_timeout: 1s type: static lb_policy: round_robin hosts: - socket_address: address: 10.0.1.100 port_value: 9411 tracing: http: name: envoy.zipkin config: collector_cluster: jaeger collector_endpoint: "/api/v1/spans" admin: access_log_path: "/tmp/admin-access.log" address: socket_address: address: 0.0.0.0 port_value: 9901 Envoyの設定ファイル
NGINXをEnvoyに置き換え 時間制限内に終わら せるためにDockerで サックとデプロイ
3681 初回ベンチマーク結果 まだEnvoyによる影響はなかった 3684
Targetの表示 起動忘れてベンチ回 すミスが防げる Grafana Dashboard 複数台構成でも楽に状 況把握. ISUCON用途だ とNodeExporterで十 分だった
JaegerでTraceLogを見る Longest Spanでソートすると分かりやすい Errorが表示されているのは Service Nameが設定されて いないから envoy/issues/3792 Native Jaeger
Tracingしよ うとしたらセグフォした envoy/issues/4140 横軸: 時刻 縦軸: Spanの期間
まとめ ISUCONでEnvoyを使えるか? ↪
WE ARE HIRING!
For your time & we’ll see you soon ladicle Thank
you!