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
1
2.3k
Java 21 Overview
line_developers
6
1.2k
Code Review Challenge: An example of a solution
line_developers
1
1.3k
KARTEのAPIサーバ化
line_developers
1
540
著作権とは何か?〜初歩的概念から権利利用法、侵害要件まで
line_developers
5
2.2k
生成AIと著作権 〜生成AIによって生じる著作権関連の課題と対処
line_developers
3
2.1k
マイクロサービスにおけるBFFアーキテクチャでのモジュラモノリスの導入
line_developers
9
3.5k
A/B Testing at LINE NEWS
line_developers
3
980
LINEのサポートバージョンの考え方
line_developers
2
1.3k
Other Decks in Technology
See All in Technology
ゼロからはじめる採用広報
yutadayo
3
950
Enhancing SaaS Product Reliability and Release Velocity through Optimized Testing Approach
ropqa
1
230
LLM時代の検索
shibuiwilliam
2
170
【5分でわかる】セーフィー エンジニア向け会社紹介
safie_recruit
0
27k
無意味な開発生産性の議論から抜け出すための予兆検知とお金とAI
i35_267
4
13k
改めてAWS WAFを振り返る~業務で使うためのポイント~
masakiokuda
2
260
NewSQLや分散データベースを支えるRaftの仕組み - 仕組みを理解して知る得意不得意
hacomono
PRO
2
170
united airlines ™®️ USA Contact Numbers: Complete 2025 Support Guide
flyunitedhelp
1
340
スタートアップに選択肢を 〜生成AIを活用したセカンダリー事業への挑戦〜
nstock
0
210
整頓のジレンマとの戦い〜Tidy First?で振り返る事業とキャリアの歩み〜/Fighting the tidiness dilemma〜Business and Career Milestones Reflected on in Tidy First?〜
bitkey
2
16k
ビギナーであり続ける/beginning
ikuodanaka
3
760
Claude Code に プロジェクト管理やらせたみた
unson
6
4.1k
Featured
See All Featured
Optimizing for Happiness
mojombo
379
70k
Building a Modern Day E-commerce SEO Strategy
aleyda
42
7.4k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
20
1.3k
Build your cross-platform service in a week with App Engine
jlugia
231
18k
Docker and Python
trallard
44
3.5k
Speed Design
sergeychernyshev
32
1k
VelocityConf: Rendering Performance Case Studies
addyosmani
332
24k
Being A Developer After 40
akosma
90
590k
Code Reviewing Like a Champion
maltzj
524
40k
Building Adaptive Systems
keathley
43
2.7k
Unsuck your backbone
ammeep
671
58k
Bootstrapping a Software Product
garrettdimon
PRO
307
110k
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を止めること適用に向けてする前に、に向けて、リージョン分け 本番環境に向けて来るリクエストをるリ分割クエストを止めること再現して評価して評価