...

PDFダウンロード

by user

on
Category: Documents
14

views

Report

Comments

Transcript

PDFダウンロード
いままでの苦労はなんだったんだ!
KVS を使って
明日からでも始められる
驚きの
パフォーマンス改善手法を
一挙に公開
株式会社神戸デジタル・ラボ
1
自己紹介
!  山本浩生 Yamamoto Kose
株式会社 神戸デジタル・ラボ
KVS(okuyama) 関連業務
関数型言語 / Emacs / サーバ環境
株式会社神戸デジタル・ラボ
2
目次
!  KVS とは?
!  WEB システム と ボトルネック
!  対策具体例
株式会社神戸デジタル・ラボ
3
そもそも……
KVS とは?
株式会社神戸デジタル・ラボ
4
KVS お使いですか?
株式会社神戸デジタル・ラボ
5
KVS とは?
株式会社神戸デジタル・ラボ
6
KVS とは?
!  Key Value Store
株式会社神戸デジタル・ラボ
7
KVS とは?
!  Key Value Store
『
と値の倉庫』
データとその目印の組合せを
蓄えておくためのソフトウェア。
株式会社神戸デジタル・ラボ
8
KVS とは?
!  特徴
株式会社神戸デジタル・ラボ
9
KVS とは?
!  特徴
単純な構造でデータを蓄えているため、
データの取得・保管処理が
一般的に RDB に比べて高速!
株式会社神戸デジタル・ラボ
10
KVS のメリット・デメリット
株式会社神戸デジタル・ラボ
11
KVS のメリット・デメリット
!  メリット
データの出し入れが速い
!  デメリット
複雑な処理には向かない
株式会社神戸デジタル・ラボ
12
KVS の特徴を活かす
株式会社神戸デジタル・ラボ
13
KVS の特徴を活かす
!  速度を求められる処理に利用する
!  複雑な処理の「結果」を貯めておく
株式会社神戸デジタル・ラボ
14
KVS の特徴を活かす
!  速度を求められる処理に利用する
!  複雑な処理の「結果」を貯めておく
→ キャッシュや
データの一時的な利用
株式会社神戸デジタル・ラボ
15
memcached
株式会社神戸デジタル・ラボ
16
memcached
!  揮発性
!  冗長性
株式会社神戸デジタル・ラボ
17
memcached だけじゃない KVS
!  揮発性
データの保存が可能なもの
!  冗長性
レプリケーションが可能なもの
株式会社神戸デジタル・ラボ
18
memcached だけじゃない KVS
!  揮発性
データの保存が可能なもの
!  冗長性
レプリケーションが可能なもの
→分散 KVS
株式会社神戸デジタル・ラボ
19
分散 KVS
!  複数のサーバで運用される KVS
株式会社神戸デジタル・ラボ
20
分散 KVS
!  複数のサーバで運用される KVS
→レプリケーション可能
→スケール性が高い
株式会社神戸デジタル・ラボ
21
分散 KVS
!  複数のサーバで運用される KVS
→レプリケーション可能
→スケール性が高い
okuyama, Riak, Hbase などなど
株式会社神戸デジタル・ラボ
22
分散 KVS
!  複数のサーバで運用される KVS
→レプリケーション可能
→スケール性が高い
okuyama, Riak, Hbase などなど
株式会社神戸デジタル・ラボ
23
次に・・・
WEB システムと ボトルネック
株式会社神戸デジタル・ラボ
24
WEB システム
株式会社神戸デジタル・ラボ
25
WEB システム
株式会社神戸デジタル・ラボ
26
WEB システム
株式会社神戸デジタル・ラボ
27
WEB システム
株式会社神戸デジタル・ラボ
28
WEB システムのボトルネック
株式会社神戸デジタル・ラボ
29
WEB システムのボトルネック
RDB からのデータ取得
株式会社神戸デジタル・ラボ
30
WEB システムのボトルネック
アプリケーションの処理
株式会社神戸デジタル・ラボ
31
WEB システムのボトルネック
静的ファイル配信
株式会社神戸デジタル・ラボ
32
WEB システムのボトルネック
商品検索
株式会社神戸デジタル・ラボ
33
WEB システムのボトルネック
アプリケーションの処理
静的ファイル配信
商品検索
RDB からのデータ取得
株式会社神戸デジタル・ラボ
34
WEB システムのボトルネック
アプリケーションの処理
商品検索
処理が集中してしまう箇所
= ボトルネック
静的ファイル配信
(画像など)
RDB からのデータ取得
株式会社神戸デジタル・ラボ
35
WEB システムのボトルネック
アプリケーションの処理
商品検索
処理が集中してしまう箇所
= ボトルネック
静的ファイル配信
(画像など)
RDB からのデータ取得
→ KVS の出番!
株式会社神戸デジタル・ラボ
36
それでは……
対策具体例
株式会社神戸デジタル・ラボ
37
負荷対策例
基本編 キャッシュ
株式会社神戸デジタル・ラボ
38
キャッシュ
株式会社神戸デジタル・ラボ
39
キャッシュ
!  ボトルネックとなる処理の結果を
キャッシュしておく
株式会社神戸デジタル・ラボ
40
キャッシュ
!  ボトルネックとなる処理の結果を
キャッシュしておく
→ RDB の問合せ結果
SQL を Key にして保存
株式会社神戸デジタル・ラボ
41
キャッシュ
!  ボトルネックとなる処理の結果を
キャッシュしておく
→ RDB の問合せ結果
SQL を Key にして保存
→ ページ内容
リクエストパラメータを
Key にして保存
株式会社神戸デジタル・ラボ
42
キャッシュ(RDB)
!  RDB の問合せ結果を保存しておく
株式会社神戸デジタル・ラボ
43
キャッシュ(RDB)
!  RDB の問合せ結果を保存しておく
RDB からのデータ取得
株式会社神戸デジタル・ラボ
44
キャッシュ(RDB)
!  RDB の問合せ結果を保存しておく
KVS
画面側で利用しやすい形式
(json など)
株式会社神戸デジタル・ラボ
45
キャッシュ(ページ)
!  HTML をそのまま保存する
株式会社神戸デジタル・ラボ
46
キャッシュ(ページ)
!  HTML をそのまま保存する
アプリケーションの処理
株式会社神戸デジタル・ラボ
47
キャッシュ(ページ)
!  HTML をそのまま保存する
KVS
リクエストパラメータの組合せ
株式会社神戸デジタル・ラボ
48
キャッシュ
!  問題点
株式会社神戸デジタル・ラボ
49
キャッシュ
!  問題点
リアルタイム性が落ちる
株式会社神戸デジタル・ラボ
50
キャッシュ
!  問題点
リアルタイム性が落ちる
→問題の無いデータをキャッシュする
株式会社神戸デジタル・ラボ
51
キャッシュ
!  運用
株式会社神戸デジタル・ラボ
52
キャッシュ
!  運用
実機
株式会社神戸デジタル・ラボ
53
キャッシュ
!  運用
実機
→用意が手間
→必要な時だけ運用しにくい
株式会社神戸デジタル・ラボ
54
キャッシュ
!  運用
VM・クラウド
株式会社神戸デジタル・ラボ
55
キャッシュ
!  運用
VM・クラウド
→環境をコピーして用意
→繁忙期のみ運用可能
株式会社神戸デジタル・ラボ
56
キャッシュ
!  運用
VM・クラウド
→環境をコピーして用意
→繁忙期のみ運用可能
スケールアウトが容易
株式会社神戸デジタル・ラボ
57
キャッシュ
!  運用例
AWS EC2 利用
株式会社神戸デジタル・ラボ
58
キャッシュ
!  運用例
AWS EC2 利用
セール対応
株式会社神戸デジタル・ラボ
59
キャッシュ
!  運用例
AWS EC2 利用
通常対応
株式会社神戸デジタル・ラボ
60
キャッシュ
!  運用例
AWS EC2 利用
停止
株式会社神戸デジタル・ラボ
61
キャッシュ
!  運用例
AWS EC2 利用
分散 KVS を使えば
スケールアウトも簡単!
株式会社神戸デジタル・ラボ
62
キャッシュ(分散 KVS)
!  分散 KVS を使えば……
株式会社神戸デジタル・ラボ
63
キャッシュ(分散 KVS)
!  分散 KVS を使えば……
→データのレプリケーション
耐障害性向上
株式会社神戸デジタル・ラボ
64
キャッシュ
!  まとめ
株式会社神戸デジタル・ラボ
65
キャッシュ
!  まとめ
→リアルタイム性の低い情報が対象
→VM やクラウドを使って
負荷に応じた環境構築
株式会社神戸デジタル・ラボ
66
キャッシュ
!  DB への問合せをキャッシュで解決
株式会社神戸デジタル・ラボ
67
キャッシュ
!  DB への問合せをキャッシュで解決?
……速くならない
株式会社神戸デジタル・ラボ
68
キャッシュ
!  DB への問合せをキャッシュで解決
……速くならない
→ 新なボトルネックの発覚
株式会社神戸デジタル・ラボ
69
負荷対策例
中級編 ストレージ
株式会社神戸デジタル・ラボ
70
ストレージ
!  画像や CSS などに集中してしまう
株式会社神戸デジタル・ラボ
71
ストレージ
!  画像や CSS などに集中してしまう
静的ファイル配信
株式会社神戸デジタル・ラボ
72
ストレージ
!  画像や CSS などに集中してしまう
静的ファイル配信
l 容量圧迫
l ディスクアクセス
l 帯域圧迫
株式会社神戸デジタル・ラボ
73
ストレージ
!  画像や CSS などに集中してしまう
静的ファイル配信
l 容量圧迫
l ディスクアクセス
l 帯域圧迫
KVS 利用に
置き換え
株式会社神戸デジタル・ラボ
74
ストレージ
!  画像や CSS などに集中してしまう
l 容量圧迫
l ディスクアクセス
l 帯域圧迫
株式会社神戸デジタル・ラボ
75
ストレージ
!  画像や CSS などに集中してしまう
KVS
l 容量圧迫
l ディスクアクセス
l 帯域圧迫
画像など
株式会社神戸デジタル・ラボ
76
ストレージ
!  画像や CSS などに集中してしまう
KVS
l 容量圧迫
l ディスクアクセス
l 帯域圧迫
画像など
分散配置
株式会社神戸デジタル・ラボ
77
ストレージ
!  画像や CSS などに集中してしまう
l 容量圧迫
l ディスクアクセス
l 帯域圧迫
株式会社神戸デジタル・ラボ
78
ストレージ
!  画像や CSS などに集中してしまう
l 容量圧迫
l ディスクアクセス
l 帯域圧迫
株式会社神戸デジタル・ラボ
79
ストレージ
!  画像や CSS などに集中してしまう
KVS
l 容量圧迫
l ディスクアクセス
l 帯域圧迫
画像など
株式会社神戸デジタル・ラボ
80
ストレージ
!  画像や CSS などに集中してしまう
l 容量圧迫 帯域分散
l ディスクアクセス
l 帯域圧迫
KVS
画像など
株式会社神戸デジタル・ラボ
81
ストレージ
!  まとめ
株式会社神戸デジタル・ラボ
82
ストレージ
!  まとめ
→KVS を使ってリソースを分散する
→ネットワークも分散する
株式会社神戸デジタル・ラボ
83
ストレージ
!  リソースへのアクセスを
ストレージで解決
株式会社神戸デジタル・ラボ
84
ストレージ
!  リソースへのアクセスを
ストレージで解決?
……すごく速くならない
株式会社神戸デジタル・ラボ
85
ストレージ
!  リソースへのアクセスを
ストレージで解決?
……すごく速くならない
→ 新なボトルネックの発覚
株式会社神戸デジタル・ラボ
86
負荷対策例
上級編 検索エンジン
株式会社神戸デジタル・ラボ
87
検索エンジン
!  商品検索が遅い
株式会社神戸デジタル・ラボ
88
検索エンジン
!  商品検索が遅い
商品検索
株式会社神戸デジタル・ラボ
89
検索エンジン
!  商品検索が遅い
商品検索
l DB への問合せ
l データ処理
株式会社神戸デジタル・ラボ
90
検索エンジン
!  商品検索が遅い
商品検索
l DB への問合せ
l データ処理
KVS 利用に
置き換え
株式会社神戸デジタル・ラボ
91
検索エンジン
!  商品検索が遅い
商品検索
検索エンジン
l DB への問合せ
l データ処理
株式会社神戸デジタル・ラボ
92
検索エンジン
!  商品検索が遅い
商品検索
データの
インポート
検索エンジン
l DB への問合せ
l データ処理
株式会社神戸デジタル・ラボ
93
検索エンジン
!  商品検索が遅い
商品データ参照
データの
インポート
検索エンジン
l DB への問合せ
l データ処理
商品検索
株式会社神戸デジタル・ラボ
94
検索エンジン
!  まとめ
株式会社神戸デジタル・ラボ
95
検索エンジン
!  まとめ
→KVS 製検索エンジンで速度向上
→DB の負荷も下がる
株式会社神戸デジタル・ラボ
96
さいごに
まとめ
株式会社神戸デジタル・ラボ
97
まとめ
株式会社神戸デジタル・ラボ
98
まとめ
!  ボトルネック部分に KVS を導入
株式会社神戸デジタル・ラボ
99
まとめ
!  ボトルネック部分に KVS を導入
キャッシュ
→可能なところから
ストレージ
スタート!
検索エンジン
株式会社神戸デジタル・ラボ
100
Fly UP