More Related Content
Similar to 20101220 pixiv tech_meeting
Similar to 20101220 pixiv tech_meeting (20)
20101220 pixiv tech_meeting
- 3. 自己紹介
・ 飯田祐基 (いいだゆうき)
・ まいんど (だーいー)
・ 2009年8月 入社
・ 前職は某ISPで3年ほど
ピクシブでは主にネットワークまわり、
広告配信システム、データセンタの構
築を担当
- 16. システム構成
ユーザーのアクセス
6Gbps占有でDNS RR データセンタ
フロントA フロントB フロントC フロントD
(nginx) (nginx) (nginx) (nginx)
Consistent Hashing
キャッシュA キャッシュB キャッシュC キャッシュD
(squid) (squid) (squid) (squid)
ローカルのnginxに再度
ディスパッチャ ディスパッチャ ディスパッチャ ディスパッチャ
(nginx) (nginx) (nginx) (nginx)
オリジン オリジン
旧社屋
- 17. システム構成
メリット
・構成が均一(各サーバのconfigが一緒!)なので管理が楽!
・スケールアウト(台数を増やしての拡張)が楽!
そんなふうに考えていた時期が俺にもありました...
・なんか工夫してるっぽくてカッコいい
・正直やってみたかった、反省はしてない
- 21. オレオレCDN やったらおどろいた
ユーザーのアクセス
6Gbps占有でDNS RR データセンタ
フロントA フロントB フロントC フロントD
(nginx) (nginx) (nginx) (nginx)
DNSラウンドロビンにたくさんアドレスを登録
DNSサーバの返答が512byteを超える(TCPに切り替わる)
クライアント側が対応していない → 見られない
- 25. オレオレCDN やったらおどろいた
フロント
(nginx)
Consistent Hashing
キャッシュA キャッシュB キャッシュC キャッシュD
(squid) (squid) (squid) (squid)
ハッシュによるキャッシュへのリクエストが偏る
(多いとこ、少ないとこで10倍くらいの差が)
特定のサーバの負荷が高くなる
- 26. オレオレCDN やったらおどろいた
解決方法
weightをいじって調節
upstream cache_server {
consistent_hash $host$request_uri;
server 192.168.32.2:8080 weight=100;
server 192.168.32.6:8080 weight=110;
server 192.168.32.7:8080 weight=106;
server 192.168.32.8:8080 weight=110;
server 192.168.32.9:8080 weight=160;
…
}
- 29. オレオレCDN やったらおどろいた
L3 Switch
過負荷
Switch Switch
リクエス フロント フロント フロント フロント
ト
キャッシュ キャッシュ キャッシュ キャッシュ
ホストA ホストB ホストC ホストD
L3 Switch ↔ Switch 700Mbps
(L3 Switchを経由する場合)Nginxが
大量のconnection timeoutを吐くように
- 31. オレオレCDN やったらおどろいた
L3 Switch
Switch Switch
フロント フロント フロント フロント
×
リクエスト
キャッシュ キャッシュ キャッシュ キャッシュ
ホストA ホストB ホストC ホストD
特定種類の画像を同じSwitch内のホストにのみ任せる
所属してるSwitchごとにconfigを変える必要性
- 32. オレオレCDN やったらおどろいた
upstream cache_server_switch_a {
consistent_hash $host$request_uri;
server 192.168.32.3:8080 weight=100;
...
}
upstream cache_server_wtich_b {
consistent_hash $host$request_uri;
server 192.168.32.13:8080 weight=100;
...
}
・ホストA、B → cache_server_switch_a
・ホストC、D → cache_server_switch_b
- 34. 終わりに
・ やったからこそわかる事がある
・ varnishとかに変えてみたい
・ 局所的にアクセスの多い部分を分割
・ 詳しいことは懇親会で
・ 弊社ではこんなのやってる!ってのも是非
・ みんなも真似できる構成