Suche senden
Hochladen
オンライン広告入札システムとZGC ( JJUG CCC 2021 Spring )
•
3 gefällt mir
•
10,074 views
Hironobu Isoda
Folgen
JJUG CCC 2021 Spring の発表資料です。
Weniger lesen
Mehr lesen
Ingenieurwesen
Melden
Teilen
Melden
Teilen
1 von 64
Jetzt herunterladen
Downloaden Sie, um offline zu lesen
Empfohlen
Metaspace
Metaspace
Yasumasa Suenaga
LogbackからLog4j 2への移行によるアプリケーションのスループット改善 ( JJUG CCC 2021 Fall )
LogbackからLog4j 2への移行によるアプリケーションのスループット改善 ( JJUG CCC 2021 Fall )
Hironobu Isoda
200,000 Req/sec をさばく広告入札システムを支えるパフォーマンスチューニング術 #jjug_ccc #ccc_g6
200,000 Req/sec をさばく広告入札システムを支えるパフォーマンスチューニング術 #jjug_ccc #ccc_g6
Hironobu Isoda
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
Yahoo!デベロッパーネットワーク
Pacemaker + PostgreSQL レプリケーション構成(PG-REX)のフェイルオーバー高速化
Pacemaker + PostgreSQL レプリケーション構成(PG-REX)のフェイルオーバー高速化
kazuhcurry
いまさら聞けないPostgreSQL運用管理
いまさら聞けないPostgreSQL運用管理
Uptime Technologies LLC (JP)
Unified JVM Logging
Unified JVM Logging
Yuji Kubota
マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!
mosa siru
Empfohlen
Metaspace
Metaspace
Yasumasa Suenaga
LogbackからLog4j 2への移行によるアプリケーションのスループット改善 ( JJUG CCC 2021 Fall )
LogbackからLog4j 2への移行によるアプリケーションのスループット改善 ( JJUG CCC 2021 Fall )
Hironobu Isoda
200,000 Req/sec をさばく広告入札システムを支えるパフォーマンスチューニング術 #jjug_ccc #ccc_g6
200,000 Req/sec をさばく広告入札システムを支えるパフォーマンスチューニング術 #jjug_ccc #ccc_g6
Hironobu Isoda
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
Yahoo!デベロッパーネットワーク
Pacemaker + PostgreSQL レプリケーション構成(PG-REX)のフェイルオーバー高速化
Pacemaker + PostgreSQL レプリケーション構成(PG-REX)のフェイルオーバー高速化
kazuhcurry
いまさら聞けないPostgreSQL運用管理
いまさら聞けないPostgreSQL運用管理
Uptime Technologies LLC (JP)
Unified JVM Logging
Unified JVM Logging
Yuji Kubota
マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!
mosa siru
CloudNativePGを動かしてみた! ~PostgreSQL on Kubernetes~(第34回PostgreSQLアンカンファレンス@オンライ...
CloudNativePGを動かしてみた! ~PostgreSQL on Kubernetes~(第34回PostgreSQLアンカンファレンス@オンライ...
NTT DATA Technology & Innovation
Docker Compose 徹底解説
Docker Compose 徹底解説
Masahito Zembutsu
Java でつくる低レイテンシ実装の技巧
Java でつくる低レイテンシ実装の技巧
Ryosuke Yamazaki
DockerとPodmanの比較
DockerとPodmanの比較
Akihiro Suda
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
NTT DATA Technology & Innovation
Javaのログ出力: 道具と考え方
Javaのログ出力: 道具と考え方
Taku Miyakawa
YugabyteDBを使ってみよう(NewSQL/分散SQLデータベースよろず勉強会 #1 発表資料)
YugabyteDBを使ってみよう(NewSQL/分散SQLデータベースよろず勉強会 #1 発表資料)
NTT DATA Technology & Innovation
9/14にリリースされたばかりの新LTS版Java 17、ここ3年間のJavaの変化を知ろう!(Open Source Conference 2021 O...
9/14にリリースされたばかりの新LTS版Java 17、ここ3年間のJavaの変化を知ろう!(Open Source Conference 2021 O...
NTT DATA Technology & Innovation
分散システムについて語らせてくれ
分散システムについて語らせてくれ
Kumazaki Hiroki
pg_bigmで全文検索するときに気を付けたい5つのポイント(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
pg_bigmで全文検索するときに気を付けたい5つのポイント(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Toru Makabe
あなたの知らないPostgreSQL監視の世界
あなたの知らないPostgreSQL監視の世界
Yoshinori Nakanishi
Linux-HA Japanプロジェクトのこれまでとこれから
Linux-HA Japanプロジェクトのこれまでとこれから
ksk_ha
PGOを用いたPostgreSQL on Kubernetes入門(PostgreSQL Conference Japan 2022 発表資料)
PGOを用いたPostgreSQL on Kubernetes入門(PostgreSQL Conference Japan 2022 発表資料)
NTT DATA Technology & Innovation
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
Akihiro Suda
TIME_WAITに関する話
TIME_WAITに関する話
Takanori Sejima
こわくない Git
こわくない Git
Kota Saito
Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)
Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)
NTT DATA OSS Professional Services
Getting Started GraalVM / GraalVM超入門 #jjug_ccc #ccc_c2
Getting Started GraalVM / GraalVM超入門 #jjug_ccc #ccc_c2
tamtam180
5分で分かるgitのrefspec
5分で分かるgitのrefspec
ikdysfm
Logicadの秒間16万リクエストをさばく広告入札システムにおける、gRPCの活用事例
Logicadの秒間16万リクエストをさばく広告入札システムにおける、gRPCの活用事例
Hironobu Isoda
JVMパラメータチューニングにおけるOptunaの活用事例 ( Optuna Meetup #1 )
JVMパラメータチューニングにおけるOptunaの活用事例 ( Optuna Meetup #1 )
Hironobu Isoda
Weitere ähnliche Inhalte
Was ist angesagt?
CloudNativePGを動かしてみた! ~PostgreSQL on Kubernetes~(第34回PostgreSQLアンカンファレンス@オンライ...
CloudNativePGを動かしてみた! ~PostgreSQL on Kubernetes~(第34回PostgreSQLアンカンファレンス@オンライ...
NTT DATA Technology & Innovation
Docker Compose 徹底解説
Docker Compose 徹底解説
Masahito Zembutsu
Java でつくる低レイテンシ実装の技巧
Java でつくる低レイテンシ実装の技巧
Ryosuke Yamazaki
DockerとPodmanの比較
DockerとPodmanの比較
Akihiro Suda
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
NTT DATA Technology & Innovation
Javaのログ出力: 道具と考え方
Javaのログ出力: 道具と考え方
Taku Miyakawa
YugabyteDBを使ってみよう(NewSQL/分散SQLデータベースよろず勉強会 #1 発表資料)
YugabyteDBを使ってみよう(NewSQL/分散SQLデータベースよろず勉強会 #1 発表資料)
NTT DATA Technology & Innovation
9/14にリリースされたばかりの新LTS版Java 17、ここ3年間のJavaの変化を知ろう!(Open Source Conference 2021 O...
9/14にリリースされたばかりの新LTS版Java 17、ここ3年間のJavaの変化を知ろう!(Open Source Conference 2021 O...
NTT DATA Technology & Innovation
分散システムについて語らせてくれ
分散システムについて語らせてくれ
Kumazaki Hiroki
pg_bigmで全文検索するときに気を付けたい5つのポイント(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
pg_bigmで全文検索するときに気を付けたい5つのポイント(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Toru Makabe
あなたの知らないPostgreSQL監視の世界
あなたの知らないPostgreSQL監視の世界
Yoshinori Nakanishi
Linux-HA Japanプロジェクトのこれまでとこれから
Linux-HA Japanプロジェクトのこれまでとこれから
ksk_ha
PGOを用いたPostgreSQL on Kubernetes入門(PostgreSQL Conference Japan 2022 発表資料)
PGOを用いたPostgreSQL on Kubernetes入門(PostgreSQL Conference Japan 2022 発表資料)
NTT DATA Technology & Innovation
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
Akihiro Suda
TIME_WAITに関する話
TIME_WAITに関する話
Takanori Sejima
こわくない Git
こわくない Git
Kota Saito
Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)
Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)
NTT DATA OSS Professional Services
Getting Started GraalVM / GraalVM超入門 #jjug_ccc #ccc_c2
Getting Started GraalVM / GraalVM超入門 #jjug_ccc #ccc_c2
tamtam180
5分で分かるgitのrefspec
5分で分かるgitのrefspec
ikdysfm
Was ist angesagt?
(20)
CloudNativePGを動かしてみた! ~PostgreSQL on Kubernetes~(第34回PostgreSQLアンカンファレンス@オンライ...
CloudNativePGを動かしてみた! ~PostgreSQL on Kubernetes~(第34回PostgreSQLアンカンファレンス@オンライ...
Docker Compose 徹底解説
Docker Compose 徹底解説
Java でつくる低レイテンシ実装の技巧
Java でつくる低レイテンシ実装の技巧
DockerとPodmanの比較
DockerとPodmanの比較
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
Javaのログ出力: 道具と考え方
Javaのログ出力: 道具と考え方
YugabyteDBを使ってみよう(NewSQL/分散SQLデータベースよろず勉強会 #1 発表資料)
YugabyteDBを使ってみよう(NewSQL/分散SQLデータベースよろず勉強会 #1 発表資料)
9/14にリリースされたばかりの新LTS版Java 17、ここ3年間のJavaの変化を知ろう!(Open Source Conference 2021 O...
9/14にリリースされたばかりの新LTS版Java 17、ここ3年間のJavaの変化を知ろう!(Open Source Conference 2021 O...
分散システムについて語らせてくれ
分散システムについて語らせてくれ
pg_bigmで全文検索するときに気を付けたい5つのポイント(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
pg_bigmで全文検索するときに気を付けたい5つのポイント(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
あなたの知らないPostgreSQL監視の世界
あなたの知らないPostgreSQL監視の世界
Linux-HA Japanプロジェクトのこれまでとこれから
Linux-HA Japanプロジェクトのこれまでとこれから
PGOを用いたPostgreSQL on Kubernetes入門(PostgreSQL Conference Japan 2022 発表資料)
PGOを用いたPostgreSQL on Kubernetes入門(PostgreSQL Conference Japan 2022 発表資料)
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
TIME_WAITに関する話
TIME_WAITに関する話
こわくない Git
こわくない Git
Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)
Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)
Getting Started GraalVM / GraalVM超入門 #jjug_ccc #ccc_c2
Getting Started GraalVM / GraalVM超入門 #jjug_ccc #ccc_c2
5分で分かるgitのrefspec
5分で分かるgitのrefspec
Ähnlich wie オンライン広告入札システムとZGC ( JJUG CCC 2021 Spring )
Logicadの秒間16万リクエストをさばく広告入札システムにおける、gRPCの活用事例
Logicadの秒間16万リクエストをさばく広告入札システムにおける、gRPCの活用事例
Hironobu Isoda
JVMパラメータチューニングにおけるOptunaの活用事例 ( Optuna Meetup #1 )
JVMパラメータチューニングにおけるOptunaの活用事例 ( Optuna Meetup #1 )
Hironobu Isoda
「Diameter勉強会 3」講義用スライド配布用 20141020
「Diameter勉強会 3」講義用スライド配布用 20141020
マジセミ by (株)オープンソース活用研究所
RL4J で始める深層強化学習
RL4J で始める深層強化学習
Yuki Tagami
zkRollup Introduction.pdf
zkRollup Introduction.pdf
ssuser7f9132
巨大ポータルを支えるプライベート・クラウド構築事例から学べ!~攻める情シスのためのインフラ構築、その極意とは?~
巨大ポータルを支えるプライベート・クラウド構築事例から学べ!~攻める情シスのためのインフラ構築、その極意とは?~
Brocade
[OpenStack Days Tokyo 2015] Enterprise Elastic Cloudを実現するEMCのOpenStack戦略
[OpenStack Days Tokyo 2015] Enterprise Elastic Cloudを実現するEMCのOpenStack戦略
EMC Japan
Bitbucketを活用したコードレビュー改善事例
Bitbucketを活用したコードレビュー改善事例
Kosuke Ito
l12l2-NFT-Bridge.pdf
l12l2-NFT-Bridge.pdf
wei-li
Cloudnativedays2021 Container security
Cloudnativedays2021 Container security
MakihikoYamazaki
【Interop Tokyo 2015】最新セキュリティサーベイからみるトレンドと解決策
【Interop Tokyo 2015】最新セキュリティサーベイからみるトレンドと解決策
Juniper Networks (日本)
20240201_大規模通信制御信号 ETLシステムにおける 大幅なコスト削減・意識改革の取り組み.pdf
20240201_大規模通信制御信号 ETLシステムにおける 大幅なコスト削減・意識改革の取り組み.pdf
NTTDOCOMO-ServiceInnovation
【C-2】メモリも、僕のキャパシティも溢れっぱなし。。2年目エンジニアが実現した機械学習
【C-2】メモリも、僕のキャパシティも溢れっぱなし。。2年目エンジニアが実現した機械学習
Developers Summit
次世代の企業ITインフラを支えるエンジニアとは
次世代の企業ITインフラを支えるエンジニアとは
Trainocate Japan, Ltd.
クラウドを最大限活用するinfrastructure as codeを考えよう
クラウドを最大限活用するinfrastructure as codeを考えよう
NTT Communications Technology Development
JAWS DAYS 2020 AWS Well-Architected Frameworkの使いドコロとオートメーション化へのチャレンジ
JAWS DAYS 2020 AWS Well-Architected Frameworkの使いドコロとオートメーション化へのチャレンジ
Kwiil Kang
Interop2016-openstack-user-group-mizuno
Interop2016-openstack-user-group-mizuno
shintaro mizuno
[G-Tech2015]次世代ファイアウォール -Cisco ASA with FirePOWER Services- によるセキュリティ対策[講演資料]
[G-Tech2015]次世代ファイアウォール -Cisco ASA with FirePOWER Services- によるセキュリティ対策[講演資料]
Trainocate Japan, Ltd.
Juniper Festa @ Interop Tokyo 2021
Juniper Festa @ Interop Tokyo 2021
Juniper Networks (日本)
Lagopusで試すFW
Lagopusで試すFW
Tomoya Hibi
Ähnlich wie オンライン広告入札システムとZGC ( JJUG CCC 2021 Spring )
(20)
Logicadの秒間16万リクエストをさばく広告入札システムにおける、gRPCの活用事例
Logicadの秒間16万リクエストをさばく広告入札システムにおける、gRPCの活用事例
JVMパラメータチューニングにおけるOptunaの活用事例 ( Optuna Meetup #1 )
JVMパラメータチューニングにおけるOptunaの活用事例 ( Optuna Meetup #1 )
「Diameter勉強会 3」講義用スライド配布用 20141020
「Diameter勉強会 3」講義用スライド配布用 20141020
RL4J で始める深層強化学習
RL4J で始める深層強化学習
zkRollup Introduction.pdf
zkRollup Introduction.pdf
巨大ポータルを支えるプライベート・クラウド構築事例から学べ!~攻める情シスのためのインフラ構築、その極意とは?~
巨大ポータルを支えるプライベート・クラウド構築事例から学べ!~攻める情シスのためのインフラ構築、その極意とは?~
[OpenStack Days Tokyo 2015] Enterprise Elastic Cloudを実現するEMCのOpenStack戦略
[OpenStack Days Tokyo 2015] Enterprise Elastic Cloudを実現するEMCのOpenStack戦略
Bitbucketを活用したコードレビュー改善事例
Bitbucketを活用したコードレビュー改善事例
l12l2-NFT-Bridge.pdf
l12l2-NFT-Bridge.pdf
Cloudnativedays2021 Container security
Cloudnativedays2021 Container security
【Interop Tokyo 2015】最新セキュリティサーベイからみるトレンドと解決策
【Interop Tokyo 2015】最新セキュリティサーベイからみるトレンドと解決策
20240201_大規模通信制御信号 ETLシステムにおける 大幅なコスト削減・意識改革の取り組み.pdf
20240201_大規模通信制御信号 ETLシステムにおける 大幅なコスト削減・意識改革の取り組み.pdf
【C-2】メモリも、僕のキャパシティも溢れっぱなし。。2年目エンジニアが実現した機械学習
【C-2】メモリも、僕のキャパシティも溢れっぱなし。。2年目エンジニアが実現した機械学習
次世代の企業ITインフラを支えるエンジニアとは
次世代の企業ITインフラを支えるエンジニアとは
クラウドを最大限活用するinfrastructure as codeを考えよう
クラウドを最大限活用するinfrastructure as codeを考えよう
JAWS DAYS 2020 AWS Well-Architected Frameworkの使いドコロとオートメーション化へのチャレンジ
JAWS DAYS 2020 AWS Well-Architected Frameworkの使いドコロとオートメーション化へのチャレンジ
Interop2016-openstack-user-group-mizuno
Interop2016-openstack-user-group-mizuno
[G-Tech2015]次世代ファイアウォール -Cisco ASA with FirePOWER Services- によるセキュリティ対策[講演資料]
[G-Tech2015]次世代ファイアウォール -Cisco ASA with FirePOWER Services- によるセキュリティ対策[講演資料]
Juniper Festa @ Interop Tokyo 2021
Juniper Festa @ Interop Tokyo 2021
Lagopusで試すFW
Lagopusで試すFW
オンライン広告入札システムとZGC ( JJUG CCC 2021 Spring )
1.
ULS Copyright © 2011-2021
UL Systems, Inc. All rights reserved. Proprietary & Confidential オンライン広告入札システムとZGC
2.
ULS Copyright © 2011-2021
UL Systems, Inc. All rights reserved. Proprietary & Confidential 1 アジェンダ 1.自己紹介 2.この資料のねらい 3.ZGCへの期待 4.ZGCのパラメータチューニング 5.本番環境におけるZGCとG1GCの比較 6.まとめ
3.
ULS 2 Copyright ©
2011-2021 UL Systems, Inc. All rights reserved. Proprietary & Confidential 自己紹介
4.
ULS Copyright © 2011-2021
UL Systems, Inc. All rights reserved. Proprietary & Confidential 3 磯田 浩靖 - 所属:ウルシステムズ株式会社 - 連絡先:hironobu.isoda@ulsystems.co.jp - twitter:hiroisojp - Javaエンジニア、認定スクラムマスタ - AWS DeepRacer(強化学習)の大会とか出てます 栗原 秀馬 - 所属:SMN株式会社 - 連絡先:shuma_kurihara@so-netmedia.jp - 競技プログラミングにハマっている。Atcoderで青色です。 自己紹介
5.
ULS 4 Copyright ©
2011-2021 UL Systems, Inc. All rights reserved. Proprietary & Confidential この資料のねらい
6.
ULS Copyright © 2011-2021
UL Systems, Inc. All rights reserved. Proprietary & Confidential 5 この資料のねらい - ねらいとするところ - ZGCパラメータチューニング手法を紹介 - 資料を読んだ人がチューニングできる一助としたい - ZGCで実際にあるシステムに適用した結果を共有 - こういうシステム特性だとこういう結果になったという一例 - ねらいとしないところ - ZGC自体の詳細な解説 - 過去のJJUGの発表を参考にしてください - https://speakerdeck.com/line_developers/zgc-in-future-line-hbase - https://speakerdeck.com/yokotaso/introduction-to-modern-gc
7.
ULS 6 Copyright ©
2011-2021 UL Systems, Inc. All rights reserved. Proprietary & Confidential ZGCへの期待
8.
ULS Copyright © 2011-2021
UL Systems, Inc. All rights reserved. Proprietary & Confidential 7 ZGCは次の目標を達成するように設計されたGC - サブミリ秒の最大一時停止時間 - 一時停止時間がヒープサイズに応じて増加しない - 8MBから16TBのヒープを処理 ZGCは低レイテンシなGC https://wiki.openjdk.java.net/display/zgc/Main
9.
ULS Copyright © 2011-2021
UL Systems, Inc. All rights reserved. Proprietary & Confidential 8 Logicad = オンライン広告入札システム - 秒間40万件のリクエストを処理 - 100ms以内のレスポンスが求められる 対象システムは高スループット & 低レイテンシ が求められている
10.
ULS Copyright © 2011-2021
UL Systems, Inc. All rights reserved. Proprietary & Confidential 9 定期ロード リアルタイム 入札サーバ Java (netty) JDK14 対象システムのアーキテクチャ概要 SSP nginx 入札サーバ 入札サーバ 入札サーバ 入札サーバ 入札サーバ Aerospike (KVS) RDS Redis gRPCサーバ 各種データストア X X X X X X 入札サーバ 入札サーバ nginx 本日お話する のはココ
11.
ULS Copyright © 2011-2021
UL Systems, Inc. All rights reserved. Proprietary & Confidential 10 広告配信はオークション形式で実施 高スループット & 低レイテンシが求められているワケ AD WebサイトA に、XYZさんが来ました。 誰か広告を出したい方いませんか? Webサイト SSP 事業者 DSP3 DSP2 DSP 1 3円 2円 1円 ユーザID XYZ 訪問通知 入札リクエスト &レスポンス 本日お話する のはココ
12.
ULS Copyright © 2011-2021
UL Systems, Inc. All rights reserved. Proprietary & Confidential 11 入札に勝つと広告を表示する権利を得ることができる 表示された広告に応じて売上が発生するビジネスモデル RTB(リアルタイムビッディング)の概要 AD WebサイトA に、XYZさんが来ました。 誰か広告を出したい方いませんか? Webサイト SSP 事業者 DSP3 DSP2 DSP 1 3円 2円 1円 訪問通知 ①広告配信 リクエスト 本日お話する のはココ WIN ②広告配信レスポン ス ③Webサイトに 広告表示用の URLを設定 ユーザID XYZ
13.
ULS Copyright © 2011-2021
UL Systems, Inc. All rights reserved. Proprietary & Confidential 12 タイムアウトが発生するとオークションに参加できない – オークションの開催期間はわずか100ミリ秒 性能要求を満たせないと会社の存続に関わる AD WebサイトA に、XYZさんが来ました。 誰か広告を出したい方いませんか? Webサイト SSP 事業者 DSP3 DSP2 DSP 1 3円 2円 1円 訪問通知 入札リクエスト &レスポンス 本日お話する のはココ タイムアウトが多く発生すると 他のDSPに権利をもっていかれて、 ビジネスとして成り立たない! ユーザID XYZ
14.
ULS Copyright © 2011-2021
UL Systems, Inc. All rights reserved. Proprietary & Confidential 13 レイテンシの低減 要求〜結果が返ってくるまでの時間 をできるだけ短くする スループット向上 単位時間あたりの処理能力を高めて、 よりたくさん捌く 同時にたくさん 捌くことができること 悩める性能要求 Client Server Client Client タイムアウトを減らして売上を確保するためには・・・ 両方を経済合理的な範囲で最適化する Client Server 1回あたりの処理が 高速であること
15.
ULS Copyright © 2011-2021
UL Systems, Inc. All rights reserved. Proprietary & Confidential 14 ネットワークレイテンシ - ネットワークレイテンシ - 入札処理のレイテンシ – 最適な広告を選択する処理 オークションに関わるレイテンシ 入札処理のレイテンシ SSP 事業者 DSP 最大 100ミリ秒 オークション開始 JSON受信 32ミリ秒 オークション終了 JSON返却 32ミリ秒
16.
ULS Copyright © 2011-2021
UL Systems, Inc. All rights reserved. Proprietary & Confidential 15 ネットワークレイテンシ ネットワークレイテンシは一定ではない – 伝送距離の長さによって決まる 通信相手 往復時間 東京~東京 約1~2ミリ秒 東京〜大阪 約7~10ミリ秒 東京~台湾 約65ミリ秒 東京〜西海岸 約120ミリ秒 東京〜ドイツ 約210〜290ミリ秒 ただし、オークションの開催期間はわずか100ミリ秒
17.
ULS Copyright © 2011-2021
UL Systems, Inc. All rights reserved. Proprietary & Confidential 16 入札処理のレイテンシ 入札処理が加わるとさらにタイムアウトは増える – 最適化アルゴリズム(機械学習)、最適な広告入札の機能開発によって 処理時間は増えてしまう 65ミリ 100ミリ 入札処理が加わって タイムアウトになった分 NWのレイテンシ
18.
ULS Copyright © 2011-2021
UL Systems, Inc. All rights reserved. Proprietary & Confidential 17 入札処理のレイテンシは平均3〜5ミリ秒 Logicadの入札処理は平均3〜5ミリ秒程度 – 機能が増えてもレイテンシを短くできればタイムアウトが減らせる – 高速化が売上につながる、最適化アルゴリズムに使える時間が増える 65ミリ 100ミリ 入札処理を短くすることが できればもっとタイムアウト が減らせる
19.
ULS Copyright © 2011-2021
UL Systems, Inc. All rights reserved. Proprietary & Confidential 18 平均では高速だが99パーセンタイルではムラがある しかし99パーセンタイルでは遅いときも 3.7ミリ秒 99thだと75ミリ秒かかるケースもある 平均 99th
20.
ULS Copyright © 2011-2021
UL Systems, Inc. All rights reserved. Proprietary & Confidential 19 処理ボリューム - 秒間40万件 - 約6,500億 req/月 – 約200億 req/日 Logicadの処理ボリューム 99thといっても相当な件数がある
21.
ULS Copyright © 2011-2021
UL Systems, Inc. All rights reserved. Proprietary & Confidential 20 ZGCにより99thのムラをなくすことができないか、またそれに よってタイムアウトする入札数を減らせないかと考えた ZGCへの期待 サブミリ秒の最大一時停止時間 これらのムラをなくしたい
22.
ULS 21 Copyright ©
2011-2021 UL Systems, Inc. All rights reserved. Proprietary & Confidential ZGCのパラメータチューニング
23.
ULS Copyright © 2011-2021
UL Systems, Inc. All rights reserved. Proprietary & Confidential 22 ベンチマーク環境でのパラメータチューニング 入札サーバ(Javaアプリケーションがあるサーバ)の構成 - JDK16、CPU:28コア、メモリ:128GB ZGCのJVMパラメータの組み合わせをいろいろ変えて性能評価 を試行したいが課題が2つあった 課題1 JVMパラメータの最適な組み合わせ がわからない 課題2 GCログの結果をグラフィカル (手間をかけず)に判断したい 課題1 課題2
24.
ULS 23 Copyright ©
2011-2021 UL Systems, Inc. All rights reserved. Proprietary & Confidential ZGCのパラメータチューニング 課題1: JVMパラメータの最適な組み合わせがわからない
25.
ULS Copyright © 2011-2021
UL Systems, Inc. All rights reserved. Proprietary & Confidential 24 課題1: JVMパラメータの最適な組み合わせがわからない ZGC用のJVMパラメータはそこそこあるため膨大な組み合わせ から良さそうな組み合わせを見つけるのは大変 https://wiki.openjdk.java.net/display/zgc/Main
26.
ULS Copyright © 2011-2021
UL Systems, Inc. All rights reserved. Proprietary & Confidential 25 - Python製のハイパーパラメータ最適化フレームワーク - パラメータ値の試行錯誤を自動化し、良い性能が出る値を自動的に発見 - 枝刈り機能 - 見込みのない組み合わせは処理を打ち切り、効率的に探索を進める機能 - https://github.com/optuna/optuna 課題1: JVMパラメータの最適な組み合わせがわからない 良い組み合わせを探索するために今回はOptunaを利用
27.
ULS Copyright © 2011-2021
UL Systems, Inc. All rights reserved. Proprietary & Confidential 26 Optuna ハイパーパラメータ最適化 手動で値の組み合わせを指定するのではなく、 自動で組み合わせを試して最適なものを探索する https://www.slideshare.net/pfi/optuna 人が1つ1つ組み合わせを決める Optunaが組み合わせを決めてくれる
28.
ULS Copyright © 2011-2021
UL Systems, Inc. All rights reserved. Proprietary & Confidential 27 Optuna 枝刈り機能 見込みのない組み合わせは処理を途中で打ち切られ、短時間で 効率的に探索を進めることができる 性能がでないと予測 される組み合わせも 長時間実施 性能がでないと予測 される組み合わせは 途中で打ち切られる 枝刈りなし 枝刈りあり
29.
ULS Copyright © 2011-2021
UL Systems, Inc. All rights reserved. Proprietary & Confidential 28 組み合わせが膨大であるためOptunaで自動化 OptunaでJVMパラメータの組み合わせ、範囲を指定して ベンチマークを自動化 Trial 1 Xmx=32GB ParallelGCThreads=5 . . Trial 2 Xmx=40GB ParallelGCThreads=3 . . Trial 99 Xmx=80GB ParallelGCThreads=10 . . ・・・
30.
ULS Copyright © 2011-2021
UL Systems, Inc. All rights reserved. Proprietary & Confidential 29 パラメータの組み合わせ、範囲指定方法 OptunaにJVMパラメータの組み合わせを渡す例 利用するJVMパラメータの値を範囲指定 しておくとOptunaが選択してくれる 選択されたJVMパラメータの組み合わせで Javaアプリケーションを起動するように スクリプトを作成した
31.
ULS Copyright © 2011-2021
UL Systems, Inc. All rights reserved. Proprietary & Confidential 30 OptunaでJVMパラメータの組み合わせを探索する どのJVMパラメータの影響が大きいかを可視化したり、 組み合わせの結果をまとめてみれる どのJVMパラメータ が寄与しているか 5分間平均の変遷 (途中経過)がわかる QPS 5分間平均の性能の例
32.
ULS Copyright © 2011-2021
UL Systems, Inc. All rights reserved. Proprietary & Confidential 31 1つのパラメータに着目した例 例えば、このアプリケーションでは ヒープは単純に増やせば増やすほど効果がありそう 32GB〜80GB
33.
ULS Copyright © 2011-2021
UL Systems, Inc. All rights reserved. Proprietary & Confidential 32 例えば、このアプリケーションでは -XX:ZFragmentationLimitはデフォルト値(25)近辺が良さそう 1つのパラメータに着目した例 1〜100
34.
ULS Copyright © 2011-2021
UL Systems, Inc. All rights reserved. Proprietary & Confidential 33 パラメータ間の関連を確認したい場合 等高線としてみることができる パラメータ間の関連に着目した例 色が濃い=性能が悪い部分 色が薄い=性能が良い部分 点=あるTrialでの値
35.
ULS Copyright © 2011-2021
UL Systems, Inc. All rights reserved. Proprietary & Confidential 34 -XX:ZMarkStackSpaceLimit、-XX:ZFragmentationLimitは ともに低い値の組み合わせのときに性能が良さそう パラメータ間の関連に着目した例 色が濃い=性能が悪い部分 色が薄い=性能が良い部分
36.
ULS Copyright © 2011-2021
UL Systems, Inc. All rights reserved. Proprietary & Confidential 35 ヒープサイズ、-XX:ZMarkStackSpaceLimitは あまり相関がなく、ヒープサイズが大きければ大きいほど性能が良さそう パラメータ間の関連に着目した例 色が薄い=性能が良い部分がヒ ープが大きい時にまんべんなく 現れている
37.
ULS Copyright © 2011-2021
UL Systems, Inc. All rights reserved. Proprietary & Confidential 36 [再掲]パラメータチューニングの流れ ベンチマーク環境にて、ZGCのJVMパラメータの組み合わせを いろいろ変えて性能評価を試行したいが課題が2つあった 課題1 JVMパラメータの最適な組み合わせが わからない -> Optunaで組み合わせを探索 課題2 GCログの結果をグラフィカル (手間をかけず)に判断したい 課題1 課題2
38.
ULS 37 Copyright ©
2011-2021 UL Systems, Inc. All rights reserved. Proprietary & Confidential ZGCのパラメータチューニング 課題2: GCログの結果をグラフィカルに判断したい
39.
ULS Copyright © 2011-2021
UL Systems, Inc. All rights reserved. Proprietary & Confidential 38 課題2: GCログの結果をグラフィカルに判断したい GCログはテキストなのでさっと良いもの悪いものをフィルタ リングできるようにグラフ化したい [2021-03-15T20:31:40.909+0900][debug][gc,phases ] GC(1) Pause Roots Java Threads (ZWorker#4) 0.164ms [2021-03-15T20:31:40.909+0900][debug][gc,phases ] GC(1) Pause Roots (ZWorker#15) 0.392ms [2021-03-15T20:31:40.910+0900][debug][gc,phases ] GC(1) Pause Roots (ZWorker#4) 0.811ms [2021-03-15T20:31:40.909+0900][debug][gc,phases ] GC(1) Pause Roots (ZWorker#10) 0.559ms [2021-03-15T20:31:40.909+0900][debug][gc,phases ] GC(1) Pause Roots (ZWorker#6) 0.401ms [2021-03-15T20:31:40.910+0900][debug][gc,phases,start] GC(1) Pause Roots Teardown (VM Thread) [2021-03-15T20:31:40.910+0900][debug][gc,phases ] GC(1) Pause Roots Teardown (VM Thread) 0.030ms [2021-03-15T20:31:40.910+0900][info ][gc,phases ] GC(1) Pause Relocate Start 1.040ms [2021-03-15T20:31:40.910+0900][debug][gc,phases,start] GC(1) Concurrent Relocate
40.
ULS Copyright © 2011-2021
UL Systems, Inc. All rights reserved. Proprietary & Confidential 39 GCeasyというGC解析サービスを利用 課題2: GCログの結果をグラフィカルに判断したい https://gceasy.io/
41.
ULS Copyright © 2011-2021
UL Systems, Inc. All rights reserved. Proprietary & Confidential 40 各種指標に加え、チューニングに関するアドバイスがもらえる (アドバイスは有償プラン) GCeasyによるレポート GCの傾向 GC停止時間
42.
ULS Copyright © 2011-2021
UL Systems, Inc. All rights reserved. Proprietary & Confidential 41 各種指標に加え、チューニングに関するアドバイスがもらえる (アドバイスは有償プラン) GCeasyによるレポート GCログで悪い傾向が検知された場合、 問題点の指摘&改善案を提示してくれる
43.
ULS Copyright © 2011-2021
UL Systems, Inc. All rights reserved. Proprietary & Confidential 42 https://blog.gceasy.io/2016/06/18/garbage-collection-log-analysis-api/ GCeasyはRest APIを提供 Rest APIを提供しており、curlでPOSTするだけで簡単にログ を解析できる(ただし、こちらも有償プラン)
44.
ULS Copyright © 2011-2021
UL Systems, Inc. All rights reserved. Proprietary & Confidential 43 G1GCは時々ものすごく遅いがZGCよりGC回数が少ない ZGCは0-2msに集中しているがGCが頻繁に発生 (参考情報)ZGCとG1GCのGC停止時間の傾向 ZGC G1GC ZGCは1回のGCが速いが、 回数が多い G1GCは1回のGCに時間が かかっているが回数は少ない 0-1ms 1-2ms 2-3ms 0-10ms 10-20ms 20-30ms
45.
ULS Copyright © 2011-2021
UL Systems, Inc. All rights reserved. Proprietary & Confidential 44 G1GCは時々ものすごく遅いがZGCよりGC回数が少ない ZGCは0-2msに集中しているがGCが頻繁に発生 (参考情報)ZGCとG1GCのGC停止時間の傾向 ZGC G1GC 時々ものすごく遅い 処理時間は安定 している 3ms 1200ms 200ms
46.
ULS Copyright © 2011-2021
UL Systems, Inc. All rights reserved. Proprietary & Confidential 45 [再掲]パラメータチューニングの流れ ベンチマーク環境にて、ZGCのJVMパラメータの組み合わせを いろいろ変えて性能評価を試行したいが課題が2つあった 課題1 JVMパラメータの最適な組み合わせが わからない -> Optunaで組み合わせを探索 課題2 GCログの結果をグラフィカル (手間をかけず)に判断したい -> GCeasyのレポートを利用 課題1 課題2
47.
ULS Copyright © 2011-2021
UL Systems, Inc. All rights reserved. Proprietary & Confidential 46 実施したパラメータチューニングの構成 Optunaで取得したメトリクスとGCeasyのレポートを元に 性能評価し、めぼしいJVMパラメータの組み合わせを探索 Trial 1 Xmx=32GB ParallelGCThreads=5 . . Trial N Xmx=80GB ParallelGCThreads=20 . . GCログ ・・・ スコアが良いJVMパラメータの GCログをレポートで確認 ・・・
48.
ULS Copyright © 2011-2021
UL Systems, Inc. All rights reserved. Proprietary & Confidential 47 Optunaのグラフと値(RDBに格納される)、および GCeasyのレポートから良さそうな組み合わせに目星を付ける Optuna、GCeasyを用いて最適なパラメータを探索する
49.
ULS Copyright © 2011-2021
UL Systems, Inc. All rights reserved. Proprietary & Confidential 48 ZGCのパラメータチューニングによる効果 デフォルトのJVMパラメータと各種JVMパラメータを設定した ものはきちんと性能が変わる = JVMパラメータをチューニングする意味はある JVMパラメータ設定あり デフォルト設定
50.
ULS 49 Copyright ©
2011-2021 UL Systems, Inc. All rights reserved. Proprietary & Confidential 本番環境におけるZGCとG1GCの比較
51.
ULS Copyright © 2011-2021
UL Systems, Inc. All rights reserved. Proprietary & Confidential 50 入札サーバ(Javaアプリケーションがあるサーバ)の構成 - JDK16(2台だけバージョンアップ) - CPU:28コア、OSメモリ:128GB、Javaメモリ:80GB 本番環境構成 入札サーバの2台をJDK16化 うち1台をZGC もう1台をG1GCとし、 メモリサイズを合わせたものを用意
52.
ULS Copyright © 2011-2021
UL Systems, Inc. All rights reserved. Proprietary & Confidential 51 以下の指標に差があるかを確認 - QPS(スループット) - ETM(処理時間) ZGCとG1GCでの比較ポイント
53.
ULS Copyright © 2011-2021
UL Systems, Inc. All rights reserved. Proprietary & Confidential 52 (参考情報)ZGCとG1GCの比較 JVMパラメータ JVMパラメータ 1702 jp.xxx.yyy.BuyerServer -Xmx80g -Xms80g -XX:MetaspaceSize=512m -XX:MaxMetaspaceSize=512m -XX:+UseG1GC -XX:+UseStringDeduplication -XX:GCTimeRatio=9 -XX:G1HeapRegionSize=32m - XX:G1ReservePercent=20 - Xlog:gc*=debug:file=/xxx/gc.log:time,level,tags:filecount=10,filesize=10 M -Djcd.dest=udp://127.0.0.1:3011 -Djcd.instance=Buyer - Djcd.tmpl=javalang,buyersettings -javaagent:xxx.jar -XX:+UseNUMA - XX:ReservedCodeCacheSize=384M -XX:-OmitStackTraceInFastThrow - XX:+ExitOnOutOfMemoryError -javaagent:yyy.jar --illegal-access=warn -- add-opens=java.base/java.lang.invoke=ALL-UNNAMED 5296 jp.xxx.yyy.BuyerServer -Xmx80g -Xms80g -XX:MetaspaceSize=512m -XX:MaxMetaspaceSize=512m -XX:+UseZGC -XX:ConcGCThreads=28 - XX:ParallelGCThreads=6 -XX:ZAllocationSpikeTolerance=1.0 - XX:ZFragmentationLimit=10 -XX:ZMarkStackSpaceLimit=28g - XX:+UseLargePages -XX:+UseNUMA - Xlog:gc*=debug:file=/xxx/gc.log:time,level,tags:filecount=10,filesize=10 M -Djcd.dest=udp://127.0.0.1:3011 -Djcd.instance=Buyer - Djcd.tmpl=javalang,buyersettings -javaagent:xxx.jar -XX:+UseNUMA - XX:ReservedCodeCacheSize=384M -XX:-OmitStackTraceInFastThrow - XX:+ExitOnOutOfMemoryError -javaagent:yyy.jar --illegal-access=warn -- add-opens=java.base/java.lang.invoke=ALL-UNNAMED ZGC G1GC
54.
ULS Copyright © 2011-2021
UL Systems, Inc. All rights reserved. Proprietary & Confidential 53 ZGCとG1GCの比較 QPS QPS(スループット)はほぼ差がなかった 1日 3時間 ほぼ差がない ほぼ差がない ZGC G1GC
55.
ULS Copyright © 2011-2021
UL Systems, Inc. All rights reserved. Proprietary & Confidential 54 ZGCとG1GCの比較 ETM 99th ETM(処理時間)99thではZGCのほうが遅くなった 3時間 1日 ZGC G1GC 20ms 50ms 30ms 50ms
56.
ULS Copyright © 2011-2021
UL Systems, Inc. All rights reserved. Proprietary & Confidential 55 ZGCとG1GCの比較 ETM 999th ETM(処理時間)999thではZGCのほうが安定していた 3時間 1日 ZGC G1GC 3時間の指標ではわかりにくいが、1日単位で みるとムラの発生回数はG1GCのほうが多い 200ms 100ms 1秒 1秒 1秒
57.
ULS Copyright © 2011-2021
UL Systems, Inc. All rights reserved. Proprietary & Confidential 56 ZGCとG1GCの比較 ETM 999th ETM(処理時間)999thではZGCのほうが安定していた ...が、結局平均64-67ms程度かかっていた 3時間 1日 ZGC G1GC 67ms 64ms
58.
ULS Copyright © 2011-2021
UL Systems, Inc. All rights reserved. Proprietary & Confidential 57 G1GCは時々ものすごく遅いがZGCよりGC回数が少ない ZGCは0-2msに集中しているがGCが頻繁に発生 ZGCとG1GCの比較 GC停止時間の傾向 ZGC G1GC ZGCは1回のGCが速いが、 回数が多い G1GCは1回のGCに時間が かかっているが回数は少ない 0-1ms 1-2ms 2-3ms 0-10ms 10-20ms 20-30ms
59.
ULS Copyright © 2011-2021
UL Systems, Inc. All rights reserved. Proprietary & Confidential 58 G1GCは時々ものすごく遅いがZGCよりGC回数が少ない ZGCは0-2msに集中しているがGCが頻繁に発生 ZGCとG1GCの比較 GC停止時間の傾向 ZGC G1GC 時々ものすごく遅い 処理時間は安定 している 3ms 1200ms 200ms
60.
ULS Copyright © 2011-2021
UL Systems, Inc. All rights reserved. Proprietary & Confidential 59 指標の確認結果は次の通り - QPS(スループット) - ZGCとG1GCで差はなかった - ETM(処理時間) - 99thではG1GCのほうが安定していた - 999thではZGCのほうが安定していた(が、67ms程度かかる) - GCログ - ZGCは0-2msに集中しているがGCが頻繁に発生 - G1GCは時々ものすごく遅いがZGCよりGC回数が少ない ZGCとG1GCでの比較
61.
ULS Copyright © 2011-2021
UL Systems, Inc. All rights reserved. Proprietary & Confidential 60 Logicadのシステム特性とマシンスペックでZGCを動かした 限りにおいてはシステムへうまくマッチしなかった - ETM 999th以降は確かに安定している - LogicadではNW含めて100ms以内でのレスポンスが求められるため、もう少し低い 値で安定することができればマッチできたかもしれない - レイテンシの安定(すべての処理に200ms以内で返すなど)が求められるシステム では合うかもしれない - GC停止時間は短いがGC回数がG1GCより高頻度でおきている - 結果、1回あたりのGC時間が短くなったとしてもアプリケーション側がそのまま速く なったわけではなかった - 用意できるハードウェアの制限のため、より大きなメモリサイズで実施し た場合は活きるかもしれない(100GB未満だとあまり効果なさそう) ZGCの適用結果
62.
ULS 61 Copyright ©
2011-2021 UL Systems, Inc. All rights reserved. Proprietary & Confidential まとめ
63.
ULS Copyright © 2011-2021
UL Systems, Inc. All rights reserved. Proprietary & Confidential 62 まとめ - ZGCは低レイテンシなGC - 安定して0-2msのGC停止時間が確認できた - ただしGC回数はG1GCより増える - パラメータチューニングの自動化が重要 - JVMパラメータは組み合わせが膨大 - Optunaなどを用いて機械的に探索できるとよい - GCログは傾向を掴みやすいようにグラフにする - GCeasyを用いてグラフから傾向を把握し、よいパラメータの組み合わ せかどうかを確認
64.
ULS Copyright © 2011-2021
UL Systems, Inc. All rights reserved. Proprietary & Confidential 63 お問い合わせ先 mailto: info@ulsystems.co.jp https://www.ulsystems.co.jp/
Jetzt herunterladen