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
スケールアウト再考
Search
Daisuke Yamazaki
February 28, 2016
Technology
1
290
スケールアウト再考
Scaleout手法とは何かを再考します。
Daisuke Yamazaki
February 28, 2016
Tweet
Share
More Decks by Daisuke Yamazaki
See All by Daisuke Yamazaki
ノートラブルシステムへの道
yamaz
22
8.1k
RWC2019 rubyによる超大量データ配信
yamaz
0
140
学び実践してきたこと
yamaz
1
280
RTB 30 min
yamaz
0
85
RailsとCで広告システムを作って起業した話
yamaz
0
220
robust logprocessing
yamaz
0
46
adserver 30min
yamaz
0
61
Other Decks in Technology
See All in Technology
AWS Control Towerを 数年運用してきての気づきとこれから/aws-controltower-ops-tips
tadayukinakamura
0
150
Recap of Next - Google Cloud で実践する クラウドネイティブ最前線 / The Frontlines of Cloud-Native with Insights from Google Cloud
aoto
PRO
1
100
Рекомендации с нуля: как мы в Lamoda превратили главную страницу в ключевую точку входа для персонализированного шоппинга. Данил Комаров, Data Scientist, Lamoda Tech
lamodatech
0
710
Cross Data Platforms Meetup LT 20250422
tarotaro0129
1
500
Would you THINK such a demonstration interesting ?
shumpei3
1
220
バックオフィス向け toB SaaS バクラクにおけるレコメンド技術活用 / recommender-systems-in-layerx-bakuraku
yuya4
6
530
Ops-JAWS_Organizations小ネタ3選.pdf
chunkof
2
170
4/16/25 - SFJug - Java meets AI: Build LLM-Powered Apps with LangChain4j
edeandrea
PRO
1
100
ソフトウェア開発現代史: "LeanとDevOpsの科学"の「科学」とは何か? - DORA Report 10年の変遷を追って - #DevOpsDaysTokyo
takabow
0
380
より良い開発者体験を実現するために~開発初心者が感じた生成AIの可能性~
masakiokuda
0
170
ワールドカフェI /チューターを改良する / World Café I and Improving the Tutors
ks91
PRO
0
120
Terraform Cloudで始めるおひとりさまOrganizationsのすゝめ
handy
2
170
Featured
See All Featured
The Cost Of JavaScript in 2023
addyosmani
49
7.7k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
26k
Stop Working from a Prison Cell
hatefulcrawdad
268
20k
Six Lessons from altMBA
skipperchong
27
3.7k
Imperfection Machines: The Place of Print at Facebook
scottboms
267
13k
Speed Design
sergeychernyshev
29
900
The World Runs on Bad Software
bkeepers
PRO
67
11k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
32
2.2k
Agile that works and the tools we love
rasmusluckow
328
21k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
120k
4 Signs Your Business is Dying
shpigford
183
22k
Rails Girls Zürich Keynote
gr2m
94
13k
Transcript
スケールアウト再考 〜数千億アクセスへの道〜 Supership 山崎大輔(@yamaz)
山崎大輔(@yamaz) Supership 取締役 (旧Scaleout代表) Scaleoutはnanapi, Bitcellerと合併して Supershipになりました。 広告システムと検索システム作ってます。
広告システムについて システム : インターネット広告システム アクセス : 月間数千億〜 サーバ台数: 1000台程度 レスポンス
: 〜100msec ユーザ数 : 数億UU〜 上記のシステムを安定運用するための考え方 について話したいと思います。
現在のインターネット 広告配信の仕組み 4 DSP メディア側広告サーバ(SSP) DSP DSP ③ビッディング ①広告Request ②オークション
開催 ブラウザ ④広告Result 広告1配信(1imp)ごとにオークションを行う
(参考)弊社採用のソフトウェア群 配信系: nginx, apache, 独自エンジン(C++) KVS: memcached, 独自KVS(tokyocabinetベース) 集計: hadoop,
hive, spark, vertica 管理画面: Ruby On Rails DB : PostgreSQL ほぼオンプレ
いきなりですが、質問です。
いつも10人並んでるATMが1台があります. ここで新たにATMを1台足すと行列の数はどうな るでしょう? ATM ATM ATM
答え だいたい0人に近づいていく
いつも10人並んでるATMとは → 単位時間に到着する人数とATMが 処理できる人数が釣り合ってるということ いつも10人 ATM
ATMが1台増えると? → ATMが処理できる人数の方が多くなる → 行列の数がどんどん減っていく → 最終的に0人になる ATM ATM
ATMの処理性能 < 到着数の時 処理が間に合ってないってことな ので、行列がどんどん増えて 最終的にめちゃくちゃ遅くなる
ATMの処理性能 > 到着数の時 処理が間に合ってるってことなの で、行列がどんどん減って最終的 には0に近づく
リトルの公式(Little’s formula) 平均の待ち行列の数 L = λ * W L: システムの平均待ち行列数
λ: システムの平均到着率 W: システムの平均待ち時間
ここまでのまとめ イイネ! システムの処理性能 > アクセス ヨクナイネ! システムの処理性能 < アクセス
スケールアップとスケールアウト
スケールアップとスケールアウト どちらも システムの処理性能 > アクセス を維持するための手法
スケールアップとスケールアウト スケールアップ: システムの処理性能 > アクセス になるまでサーバをパワーアップ スケールアウト: システムの処理性能 > アクセス
になるまでサーバを増やす
スケールアウトという手法 システムの処理性能 > アクセス になるまでサーバを増やす ではなく システムの処理性能 > アクセス になるまで1台あたりのアクセスとデータ量を減らす
と考えてみる
(おさらい)システムの処理性能 < アクセス → 待ち行列がどんどん増えていく → システムはどんどん遅くなる ATM
システムの処理性能 < アクセス 1%しか超えてなくても、この状態が ずーっと続く限りは待ち行列は永遠に 増える →システムは無限に遅くなる
スケールアウトあるある 応答速度が10倍遅くなった! えぇっ?10倍サーバを足す必要があるの?? →必要ありません システムの処理性能 > アクセス を満たせばいいので、大抵の場合数割の増強で 事足りるはず
逆を言うと? 1台あたり数割の性能劣化が10倍以上の速度 低下をもたらす可能性がある!!
ミドルウェアの選定基準 ピーク性能ではなく、性能の安定度(分散の小 ささ)に着目する パフォーマンスが不安定なものはピーク性能が 良くても良くないものだと考える
性能の分散が小さい =制御しやすい ソフトA ソフトB 性能高 性能低 品質工学の考え方: ソフトBのほうがよいと考える
ミドルウェアの選定基準 1. 複雑な機構を持ったものを避け、単純なもの を採用する 2. GCやデータリバランスなどコントロールしにく い挙動のものを避ける 「やかんは壊れない」の心意気
スケールアウトあるある システムは設計を端折ったところからほころび 始める。 あらゆる箇所が現在の100倍になっても大丈夫 か確認しましょう。
スケールアウトあるある 処理能力を超えると一気にダメになる 対策: - ピークアクセス時の予兆を見逃さない - カナリアサーバの準備 - アクセスの強制的な平滑化
スケールアウトあるある 処理能力を超えると一気にダメになる 対策: - ピークアクセス時の予兆を見逃さない - カナリアサーバの準備 - アクセスの強制的な平滑化
スケールアウトあるある 処理能力を超えると一気にダメになる 対策: - ピークアクセス時の予兆を見逃さない - カナリアサーバの準備 - アクセスの強制的な平滑化
スケールアウトあるある 処理能力を超えると一気にダメになる 対策: - ピークアクセス時の予兆を見逃さない - カナリアサーバの準備 - アクセスの強制的な平滑化
それでもダメなら スケールアップも積極的に検討しましょう。 SSDには随分と助けられました。 なおネットワーク帯域はスケールアップしにくい 領域なので、極力ネットワーク負荷の低いシス テム設計にしましょう。
最後に 1. 「システムの処理性能 > アクセス」の維持を強く意識 しましょう 2. 普通をきちんと積み重ねるだけで数1000億のアクセ スは十分対応可能 3.
とはいえ、大量アクセスを浴び続けることで養われる ものもある そんなシステムを取り回してみたい方はぜひ弊社に! http://recruit.supership.jp/