mogilefsの利用と高速化

Post on 04-Jul-2015

12.544 Views

Category:

Technology

2 Downloads

Preview:

Click to see full reader

DESCRIPTION

MogileFS+Perlbalな運用形態におけるX-REPROXY-URLの活用と、X-REPROX-CACHE-FORを使ったサーバレスポンスの高速化、サーバの負荷軽減について

TRANSCRIPT

MogileFS の利用と高速化

ふしはらかん @MobileFactory

MogileFS おさらい

分散ファイル管理システムファイルを複数のサーバに分散して保存

登録・参照は専用の Client を使う

Web 経由でのファイル参照は Perlbal を使うことで効率よく行なえる

MogileFS おさらい2

Client

Tracker

DB

Storage Node

Storage Node

Storage Node

キー名とファイル保存先を記録

ファイルを保存

ファイル保存

MogileFS おさらい2

Client

Tracker

DB

Storage Node

Storage Node

Storage Node

  キー名保存先を検索

ファイル参照

  保存先を返す

  ファイルを取得

MogileFS おさらい3

Perlbal Tracker

DB

Storage Node

Storage Node

Storage Node

保存先を検索

ファイル参照2

App

キー名

保存先一覧

データ取得

X-REPROXY-URL

このヘッダを指定すると、指定したURL から Perlbal がデータを取得してきて返してくれる

URL は「 」(半角スペース)で複数指定可能

まさに Mogile のための機能

高速化その1  URL をキャッシュ

Perlbal Tracker

DB

Storage Node

Storage Node

Storage Node

保存先を検索

App

キー名

保存先一覧

データ取得

これをキャッシュ

URL がキャッシュされた状態

Perlbal Tracker

DB

Storage Node

Storage Node

Storage Node

App

データ取得

URL

この状態での問題点

そもそも App サーバで処理するのはコストが大きい無駄な処理が多い

プラグイン等の呼び出し

Etc…

高速化その 2   X-REPROXY-CACHE-FOR

Perlbal Tracker

DB

Storage Node

Storage Node

Storage Node

保存先を検索

App

キー名

保存先一覧

データ取得

X-REPROXY-CACHE-FOR を送信

X-REPROXY-CACHE-FOR

Perlbal で REPROXY-URL をキャッシュ

perlbal.conf で以下の設定が必要 SET reproxy_cache_maxsize = xxx

以下の書式で指定するX-REPROXY-CACHE-FOR: 3600; Content-Type

キャッシュの維持期間と、 URL 以外にキャッシュするヘッダを指定

X-REPROXY-CACHE-FOR のキャッシュ有効時

Perlbal Tracker

DB

Storage Node

Storage Node

Storage Node

App

データ取得

まとめ

Mogile で運用していてダウンロード数をカウントしないもの(アートワーク等)に非常に有効

アプリケーションサーバの負荷を大きく下げられる

ヘッダの指定法を間違うと実機で画像が出なくなるので注意

top related