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
PRO
May 28, 2019
Technology
1
2.4k
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
LINEスタンプのSREing事例集:大きなスパイクアクセスを捌くためのSREing
line_developers
PRO
1
1.4k
Java 21 Overview
line_developers
PRO
6
790
Code Review Challenge: An example of a solution
line_developers
PRO
1
830
KARTEのAPIサーバ化
line_developers
PRO
1
370
著作権とは何か?〜初歩的概念から権利利用法、侵害要件まで
line_developers
PRO
5
1.8k
生成AIと著作権 〜生成AIによって生じる著作権関連の課題と対処
line_developers
PRO
3
1.7k
マイクロサービスにおけるBFFアーキテクチャでのモジュラモノリスの導入
line_developers
PRO
9
2.3k
A/B Testing at LINE NEWS
line_developers
PRO
2
620
LINEのサポートバージョンの考え方
line_developers
PRO
2
780
Other Decks in Technology
See All in Technology
0→1開発における技術選定において一番大切なこと
bicstone
1
320
長期間TiDBを使ってきた話 @ 私たちはなぜNewSQLを使うのかTiDB選定5社が語る選定理由と活用LT / Experiences with TiDB Over Time
chibiegg
2
690
Tableau事例紹介 / Tableau Case Study of Eureka
kazuya_araki_tokyo
1
170
マルチアカウント環境への発見的統制の導入
ch1aki
1
1.3k
o11y入門_外形監視を利用したWebアプリケーションへの最適なモニタリング_TechBrew
k5k
3
100
Data and AI Governance: Existing Challenges and Emerging Trends
scotthsieh825
0
150
レガシーをぶっ壊せ。AEONで始めるDevRelの話 / Qiita Night 2024-2-22
aeonpeople
3
150
TransitGatewayの基礎
toru_kubota
0
230
小さな開発会社がWebサービスを作る理由
polidog
PRO
1
150
Tebiki株式会社 エンジニア採用資料
tebiki
0
4.1k
普段有償でサポート業務をしているCSAが技術知見を無料で公開する理由
07jp27
1
630
HEXA OSINT CTF V3 作戦会議
meow_noisy
0
110
Featured
See All Featured
Teambox: Starting and Learning
jrom
128
8.4k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
39
4.4k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
60
14k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
20
1.6k
What’s in a name? Adding method to the madness
productmarketing
PRO
15
2.6k
Fontdeck: Realign not Redesign
paulrobertlloyd
76
4.9k
Happy Clients
brianwarren
91
6.4k
Building a Scalable Design System with Sketch
lauravandoore
455
32k
A better future with KSS
kneath
231
16k
Side Projects
sachag
451
41k
Intergalactic Javascript Robots from Outer Space
tanoku
266
26k
The Power of CSS Pseudo Elements
geoffreycrofte
59
5k
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を止めること適用に向けてする前に、に向けて、リージョン分け 本番環境に向けて来るリクエストをるリ分割クエストを止めること再現して評価して評価