memcached Night in Tokyo #1に参加してきました
memcached Users Group :: Japan | Google Groups
昨日、mixiで行われたmemcachedなイベントに参加してきました。
発表者の方々が担当されてるサービスでmemcachedがこんな感じで使われてるよー、という実際の事例をプレゼンされていたので非常に参考になりました。
自分はまだ小さいサービスでmemcachedを単純なデータストレージとして普通に使ってる1ユーザなので、今後スケーリングさせていく上でどうするべきか、という点で考えさせられる事が多々。
ビデオも撮影されていたようので、おそらく後日公開もされるんじゃないでしょうか。
個人的にはkiyotakaさんの発表が興味深かったです。こんな使われ方もするんだなと改めてmemcachedの可能性を感じた気がします。あと、id:yasui0906さんのrepcachedの発表後の質疑応答がアツかった。やっぱり皆さんレプリケーション興味あるんですね。
懇親会ではid:koyhogeさんと初めてお会いしてお話ができた!ブログをチェックしてる人と実際に会うと嬉しいです。
いろんな話題が出ましたがロードアベレージの話が面白かった。10〜20とかだと最近のCPUだと頑張って動いてくれるよね、という話にw id:kunitさんは200を越えたことがあるそうですが、その領域には踏み込みたくないです。。。
以下、雑感メモになります。
repcachedの仕組みや運用について
- memcachedのパッチとして作ってる
3原則
- パフォーマンス低下は×
- memcachedと同じ動作
- 安定動作
Ver1.0
- オンラインコピーみたいな処理
- マスタがスレーブにコピー
- マスタが落ちたら、スレーブがマスタに
- 復帰した旧マスタがスレーブに
- いろいろ問題がわかってきたのでマルチマスタ化
Ver2.0
- マルチマスタ
- どっちに書いてもOK
- クライアントライブラリで分散し、repcachedでコピー
Ver3.0の予定
- 3台以上のスケールに対応させたい
- マルチスレッド
- memcached本体のバージョンアップが気になる
- とりあえず1.2.Xベースで
Q&A
- memcached本体のバージョンが上がると再パッチ?
- そうなります。けど、外に出せる所は分離してるから更新対象はそんなに多くない(らしい)
- データの同期は?
- PHPだと1秒(デフォ設定)
- keepalivedの場合は5秒
- レプる前にF/OしちゃうとOUT
- 同期版は?
- 作ってみたけど非常に遅かった
- TCP/IPコネクション数は?
- 1本。切れたら-Xオプションつけて再接続
- ネットワーク分離する案とかは?
- 分離するデメリットもあるので、今は同一ネットワークに置いて使うことを想定(?
- ビジー状態になったりする?
- 負荷テストで再現できなかったので、たぶん大丈夫
汎用ストレージとしての様々な使い方
mixiとmemcachedに関する何か
- memcachedサーバ: 135台
- 1.2.5
- かなりバギー
- Busy Loop
- 1.2.6へ
- アップグレードに3日
- rpm(yum)使ってる
- configureオプションは特に何も指定せず
- 起動オプションも普通
- Consistent-Hashing(ketama)
- バッドノウハウ
- getでもsetできちゃう
- キーは250文字、制御文字や空白はNG