Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
ZGC in Future LINE HBase
Search
LINE Developers
May 28, 2019
Technology
1
2.7k
ZGC in Future LINE HBase
2019/5/28に開催されたLINE Developer Meetup #54 in Fukuokaでの登壇資料です
LINE Developers
May 28, 2019
Tweet
Share
More Decks by LINE Developers
See All by LINE Developers
LINEスタンプのSREing事例集:大きなスパイクアクセスを捌くためのSREing
line_developers
3
2.3k
Java 21 Overview
line_developers
6
1.2k
Code Review Challenge: An example of a solution
line_developers
1
1.4k
KARTEのAPIサーバ化
line_developers
1
550
著作権とは何か?〜初歩的概念から権利利用法、侵害要件まで
line_developers
5
2.2k
生成AIと著作権 〜生成AIによって生じる著作権関連の課題と対処
line_developers
3
2.2k
マイクロサービスにおけるBFFアーキテクチャでのモジュラモノリスの導入
line_developers
9
3.6k
A/B Testing at LINE NEWS
line_developers
3
1k
LINEのサポートバージョンの考え方
line_developers
2
1.3k
Other Decks in Technology
See All in Technology
2025年夏 コーディングエージェントを統べる者
nwiizo
0
140
「Linux」という言葉が指すもの
sat
PRO
4
130
Webブラウザ向け動画配信プレイヤーの 大規模リプレイスから得た知見と学び
yud0uhu
0
230
2つのフロントエンドと状態管理
mixi_engineers
PRO
3
100
roppongirb_20250911
igaiga
1
220
開発者を支える Internal Developer Portal のイマとコレカラ / To-day and To-morrow of Internal Developer Portals: Supporting Developers
aoto
PRO
1
460
なぜテストマネージャの視点が 必要なのか? 〜 一歩先へ進むために 〜
moritamasami
0
220
20250903_1つのAWSアカウントに複数システムがある環境におけるアクセス制御をABACで実現.pdf
yhana
3
550
生成AIでセキュリティ運用を効率化する話
sakaitakeshi
0
650
Obsidian応用活用術
onikun94
2
490
Evolución del razonamiento matemático de GPT-4.1 a GPT-5 - Data Aventura Summit 2025 & VSCode DevDays
lauchacarro
0
180
なぜスクラムはこうなったのか?歴史が教えてくれたこと/Shall we explore the roots of Scrum
sanogemaru
5
1.6k
Featured
See All Featured
Building a Scalable Design System with Sketch
lauravandoore
462
33k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
Building Adaptive Systems
keathley
43
2.7k
Producing Creativity
orderedlist
PRO
347
40k
Music & Morning Musume
bryan
46
6.8k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
9
810
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
112
20k
Bash Introduction
62gerente
615
210k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
139
34k
Visualization
eitanlees
148
16k
The Straight Up "How To Draw Better" Workshop
denniskardys
236
140k
Transcript
ZGC in Future LINE HBase LINE Corporation Shinya Yoshida 2019/05/28
LINE Developer Meetup #54 in Fukuoka
自己紹介 • Shinya Yoshida • 開発1センター 開発開発1室 開発Z Part 開発HBase Unit server Z
Part Other services
コンテンツ • Garbage Collection/or • GCの選び方選び方び方方 • ZGC+HBaseの選び方評価 • 本番環境適用に向けてに向けて向けてけて
Garbage Collection/or • 回収方法 • メモリ分割分割(世代分け、リージョン分けリ分割ージョン分け) – 今回は時間の都合で話時間の都合で話さなの選び方都合で話さないで話さない話さないさない • Stop
The World(STW) – アプリ分割ケーションスレッドを止めることを止めること止めることめること
HBaseとGC • HBase = JVM上で動くで話さない動くくNoSQL – GC Response time ⇒
Respon – Response time Service ⇒ Respon
GC=ごみ収集収集/掃除
ごみ収集収集/掃除 • ゴミを見つけるを止めること見つけるつける • ゴミを見つけるを止めること回収して、リージョン分け空間の都合で話さなを止めること 整理するする
GCアルゴリ分割ズム(回収方法) • 参照されていないされていない オブジェクト(ゴミを見つける)を止めること見つけるつける • 参照されていないカウント • Mark • Sweep/Compaction
– ゴミを見つけるを止めること削除して、リージョン分け空間の都合で話さなを止めること整理する • Copy(Relocate) – 参照されていないされているオブジェクトを止めること 別の場所に移すの選び方場所に移すに向けて移すす – Markと同時に向けてする場合で話さないと 別の場所に移す々に行う場合があに向けて行う場合があるう場合がある場合で話さないがある
フラグメンテーション がおきる アドを止めることレスが変わるわる アドを止めることレスが変わるわる 空間の都合で話さなが余分に向けて必要 Sweep/Compaction Copy
Javaの選び方GC GCアルゴリ分割ズム 回収方法 Young GC Sequential/Parallel Copy Old GC Sequential/Parallel
Sweep&Compact Concurrent Mark & Sweep (Deprecated) Sweep G1GC Copy ZGC(Java11, Experimental) Copy Shenandoah(Java12, Experimental) Copy
GCとアプリ分割ケーション実行う場合がある • GC時:アプリケーショアプリ分割ケーションを止めること止めることめる(STW)必要があったり、リージョン分け なかったり – 安全性(Must):アプリケーショゴミを見つける以外を回収しないを止めること回収しない – 完全性(Option):アプリケーショゴミを見つけるを止めることすべて回収しきる • STW時間の都合で話さなは時間の都合で話アルゴリ分割ズムに向けてよる
– どれぐらい止めることめないといけないか – 何に比例して増えに向けて比例して増えるかして増えるかえるか
GCアルゴリ分割ズムの選び方STWとスケール GCアルゴリ分割ズム Mark 回収 Old GC Sequential Parallel CMS(Deprecated) いつかFullGCが起きる可能性大きる可能性大
G1GC 実行う場合がある中にアドレスが変に向けてアドを止めることレスが変わるわると大変わる ただし、リージョン分けSTW時間の都合で話さなは時間の都合で話制御可能 ZGC STW時間の都合で話さなは時間の都合で話スレッドを止めること数に比例に向けて比例して増えるか 各STW:10ms以下? Shenandoah 各STW:10ms以下? アプリ分割ケーションスレッドを止めること実行う場合がある中にアドレスが変 アプリ分割ケーションスレッドを止めることSTW GC実行う場合がある
ZGCとShenandoahの選び方仕組みみ収集 • アプリ分割ケーションを止めること動くかしながら、リージョン分けオブジェクトの選び方アドを止めることレスを止めること 変わるえる仕組みみ収集 • JJUG CCC 2018 Springで話さないあった発表を見てくださいを止めること見つけるてください –
https://speakerdeck.com/yokotaso/ introduction-to-modern-gc – https://blog.cybozu.io/entry/ 2018/05/29/080000 – By @yokotaso(Cybozu)
GCの選び方選び方択
GCを止めること選び方ぶに向けては時間の都合で話 • GCの選び方特性(得意な部分、苦手なな部分、リージョン分け苦手な部分な部分)を止めること知るる • アプリ分割ケーションの選び方特性/ハードを止めることウェアを止めること考えるえる • 最も良さげなも良さげな良さげなさげなGCを止めること選び方ぶ
GCの選び方特性 • スループット?応答時間の都合で話さな?(STW時間の都合で話さな) • CPUコア数に比例 • メモリ分割サイズ • ライブオブジェクト率 •
オブジェクトサイズ • などなど
GCごとの選び方特性 各STW時間の都合で話さな スループット 最も良さげな適なCPU コア数に比例 最も良さげな適なヒープ サイズ ∞ 85% 100%
1GB 8GB 512GB 8TB〜 0ms 100ms 1s 1 2 4 8 16 32+ 31GB 128GB 2TB Sequential/Parallel G1GC Shenandoah/ZGC
LINEの選び方HBaseは時間の都合で話・・・? • レスポンスタイムが大事 • スループット/1台は仕組み上は大は時間の都合で話仕組みみ収集上で動くは時間の都合で話大事じゃない – スケールアウトで話さないきる – サーバ代的には大事代的には大事に向けては時間の都合で話大事 •
いっぱいメモリ分割を止めること使ってキャッシュってキャッシュしたいしたい • CPUリ分割ソース余りがち – SQLは時間の都合で話無いい – シンプルなGet/Scan/Put/Delete – IOとNetworkがほとんど • CPU: 40コア • メモリ分割: 256GB
GCごとの選び方特性に向けて当てはめるては時間の都合で話める 各STW時間の都合で話さな スループット 最も良さげな適なCPU コア数に比例 最も良さげな適なヒープ サイズ ∞ 85% 100%
1GB 8GB 512GB 8TB〜 0ms 100ms 1s 1 2 4 8 16 32+ 31GB 128GB 2TB Sequantial/Parallel G1GC Shenandoah/ZGC
HBaseに向けては時間の都合で話ZGCが良さげなさそう場合がある! (Shenandoahで話さないも良さげな良さげないけどZ Partなの選び方で話さない・・・)
2018年夏のインターンでの選び方インターンで話さない ZGCを止めること試してもらったしても良さげならった https://linecorp.com/ja/career/newgrads/internship/
具体的には大事に向けては時間の都合で話 • テストクラスタで話さないHBase1.2.5+αを止めること構築 • Java11-eaで話さない動くかす • ZGCを止めること有効にするに向けてする • ベンチマークツールYCSBで話さない評価 –
STW時間の都合で話さなとslow responseの選び方時間の都合で話さな、リージョン分けスループット – 比較として今使ってとして今使ってキャッシュっているG1GCも良さげな
STW時間の都合で話さな
レスポンスタイム G1GC ZGC Slow Response閾値 35ms
結果(スループット)
じゃあ本番に向けて適用に向けてだ!
そんな簡単にはできないに向けては時間の都合で話で話さないきない
Java11≦で話さない動くかす(今は時間の都合で話Java8) ZGC(Experimental機能)を止めること有効にするに向けてする
それを止めること社会インフラであるインフラで話さないある LINEの選び方メッセンジャーで話さない いきなりやって良さげないの選び方か・・・
とは時間の都合で話言え、え、リージョン分け 本番環境の選び方リ分割クエストと 同じリ分割クエストで話さない試してもらったしたい
RPC Response JDK8 + G1GC server
RPC Response JDK8 + G1GC Consumer RPC Info JDK11 +
ZGC RPC Response server
RPC Response JDK8 + G1GC Consumer RPC Info JDK11 +
ZGC RPC Response server WORK IN PROGRESS
We’re hiring(新宿オフィスオフィス) • https://linecorp.com/ja/career/position/458
まとめ • Javaに向けて新しいGCが! – ZGC、リージョン分けShenandoah: まだExperimental – ちゃんと特性を止めること分かって選び方ぶことが大事 • ZGCに向けて期待
– 評価的には大事に向けても良さげなHBaseとの選び方相性が良さげなさそう場合がある • 本番環境の選び方HBaseに向けてZGCを止めること適用に向けてする前に、に向けて、リージョン分け 本番環境に向けて来るリクエストをるリ分割クエストを止めること再現して評価して評価