Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
ZGC in Future LINE HBase
LINE Developers
PRO
May 28, 2019
Technology
1
2.2k
ZGC in Future LINE HBase
2019/5/28に開催されたLINE Developer Meetup #54 in Fukuokaでの登壇資料です
LINE Developers
PRO
May 28, 2019
Tweet
Share
More Decks by LINE Developers
See All by LINE Developers
SONiCをLINEのClosネットワークに導入した話 / A story to adopt SONiC in LINE’s Clos Network
line_developers
PRO
1
75
ML PM, DS PMってどんな仕事をしているの?
line_developers
PRO
1
250
LINE iOSエンジニアの日々 / LINE iOS Engineer Days
line_developers
PRO
1
150
“Do you have a virtual router?” Discuss how to use virtual routers
line_developers
PRO
0
590
LINEにおけるネットワーク自動化チーム / Network Automation Team in LINE
line_developers
PRO
0
320
ひとりで書ける! 日英文章作成のコツ / Do-it-yourself! - Tips for writing in Japanese-English
line_developers
PRO
1
430
UIT Survey 2022
line_developers
PRO
0
120
LINE’s Journey; Road to 4 Million Cores in the Private Cloud
line_developers
PRO
0
79
Investigating Kafka performance issue caused by lock contention in xfs
line_developers
PRO
0
250
Other Decks in Technology
See All in Technology
データ分析基盤の要件分析の話(202201_JEDAI)
yabooun
0
290
ECテックカンファレンス2023 EC事業部のモバイル開発2023
tatsumi0000
0
340
「一通りできるようになった」その先の話
hitomi___kt
0
140
ChatGPT for Hacking
anugrahsr
0
4.6k
USB PD で迎える AC アダプター大統一時代
puhitaku
2
2k
re:Invent2022 前後の Amazon EventBridge のアップデートを踏まえつつ、情シスの仕事をより楽しくしたい話。 / EventBridge for Information Systems Department
_kensh
2
770
スクラム導入して変わったチーム、組織のありかた
yumechi
0
200
OCI DevOps 概要 / OCI DevOps overview
oracle4engineer
PRO
0
510
SSMパラメーターストアでクロススタック参照の罠を回避する
shuyakinjo
0
7.9k
01_ユーザーリサーチ実施の進め方
kouzoukaikaku
0
670
IoT から見る AWS re:invent 2022 ― AWSのIoTの歴史を添えて/Point of view the AWS re:invent 2022 with IoT - with a history of IoT in AWS
ma2shita
0
280
立ち止まっても、寄り道しても / even if I stop, even if I take a detour
katoaz
0
890
Featured
See All Featured
How to name files
jennybc
47
73k
Embracing the Ebb and Flow
colly
75
3.6k
No one is an island. Learnings from fostering a developers community.
thoeni
12
1.5k
5 minutes of I Can Smell Your CMS
philhawksworth
198
18k
Designing for humans not robots
tammielis
245
24k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
318
19k
Principles of Awesome APIs and How to Build Them.
keavy
117
15k
Pencils Down: Stop Designing & Start Developing
hursman
114
10k
jQuery: Nuts, Bolts and Bling
dougneiner
57
6.6k
A better future with KSS
kneath
230
16k
Creatively Recalculating Your Daily Design Routine
revolveconf
207
11k
Imperfection Machines: The Place of Print at Facebook
scottboms
254
12k
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を止めること適用に向けてする前に、に向けて、リージョン分け 本番環境に向けて来るリクエストをるリ分割クエストを止めること再現して評価して評価