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.8k
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.4k
Java 21 Overview
line_developers
6
1.3k
Code Review Challenge: An example of a solution
line_developers
1
1.5k
KARTEのAPIサーバ化
line_developers
1
600
著作権とは何か?〜初歩的概念から権利利用法、侵害要件まで
line_developers
5
2.3k
生成AIと著作権 〜生成AIによって生じる著作権関連の課題と対処
line_developers
3
2.4k
マイクロサービスにおけるBFFアーキテクチャでのモジュラモノリスの導入
line_developers
9
3.8k
A/B Testing at LINE NEWS
line_developers
3
1.1k
LINEのサポートバージョンの考え方
line_developers
2
1.4k
Other Decks in Technology
See All in Technology
10Xにおける品質保証活動の全体像と改善 #no_more_wait_for_test
nihonbuson
PRO
2
290
マーケットプレイス版Oracle WebCenter Content For OCI
oracle4engineer
PRO
5
1.6k
AIエージェントを開発しよう!-AgentCore活用の勘所-
yukiogawa
0
170
SREのプラクティスを用いた3領域同時 マネジメントへの挑戦 〜SRE・情シス・セキュリティを統合した チーム運営術〜
coconala_engineer
2
650
顧客の言葉を、そのまま信じない勇気
yamatai1212
1
350
コスト削減から「セキュリティと利便性」を担うプラットフォームへ
sansantech
PRO
3
1.5k
Webhook best practices for rock solid and resilient deployments
glaforge
1
290
Frontier Agents (Kiro autonomous agent / AWS Security Agent / AWS DevOps Agent) の紹介
msysh
3
170
Context Engineeringの取り組み
nutslove
0
350
顧客との商談議事録をみんなで読んで顧客解像度を上げよう
shibayu36
0
240
SREじゃなかった僕らがenablingを通じて「SRE実践者」になるまでのリアル / SRE Kaigi 2026
aeonpeople
6
2.4k
日本の85%が使う公共SaaSは、どう育ったのか
taketakekaho
1
210
Featured
See All Featured
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
0
140
Highjacked: Video Game Concept Design
rkendrick25
PRO
1
290
How GitHub (no longer) Works
holman
316
140k
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
96
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
55k
Jamie Indigo - Trashchat’s Guide to Black Boxes: Technical SEO Tactics for LLMs
techseoconnect
PRO
0
62
Prompt Engineering for Job Search
mfonobong
0
160
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
117
110k
sira's awesome portfolio website redesign presentation
elsirapls
0
150
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
26
3.3k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.6k
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を止めること適用に向けてする前に、に向けて、リージョン分け 本番環境に向けて来るリクエストをるリ分割クエストを止めること再現して評価して評価