mixiがはまったmemcached(or libevent?)の問題を調べる人たち

2010-08にmixiエンジニアのお盆があぼんした件について調べる人たち。
114
前へ 1 ・・ 6 7
Neal Sato @nealsato

「mixi大規模障害について その2」のエントリーをアップしました http://alpha.mixi.co.jp/blog/?p=2153

2010-08-19 17:32:36
mala @bulkneets

うちレッドブル届いてない…

2010-08-19 18:10:53
Shinji Tanaka @stanaka

あのエントリのは対症療法ですね。根治パッチはできているので、それの取り込まれ待ちかと RT @shigeyas: これ再発防止策じゃなくて、対症療法じゃね? RT @naoto_matsumoto あふん~? http://bit.ly/bppK2U

2010-08-19 19:11:29
mala @bulkneets

@kzk_mover いえいえおかまいなく!

2010-08-19 20:21:27
mala @bulkneets

twitter上の日本語での議論も、開発者の人が検索して翻訳して読んでたりするわけだから「僕の遅刻もメムキャッシュディー(検索よけ)が落ちたのが原因です」みたいなジョークはノイズ

2010-08-19 21:09:16
mala @bulkneets

誰かmemcachedの問題の説明とパッチ、ML or IRCに投げないのかな(道端で人が倒れているけど誰が救急車呼ぶか問題)

2010-08-19 21:44:14
mala @bulkneets

mixiのひとがやってんのかな

2010-08-19 21:44:29
Kazuki Ohta @kzk_mover

パッチアレで合ってるんだったら、投げますが。手元では落ちてないのですけど。 RT @bulkneets: 誰かmemcachedの問題の説明とパッチ、ML or IRCに投げないのかな(道端で人が倒れているけど誰が救急車呼ぶか問題)

2010-08-19 21:45:18
Kazuki Ohta @kzk_mover

@bulkneets なるほど、じゃあ説明とまあパッチもおまけで投げてみます

2010-08-19 21:52:20
Neal Sato @nealsato

@kzk_mover @bulkneets IRCではdormandoにevent_base_loopを抜ける事は報告してますが、もう少し詳細がわかったら連絡すると伝えてあります。

2010-08-19 21:53:56
Kazuki Ohta @kzk_mover

よく見たら名前載ってた。有難うございます。で、パッチはどこだ? RT @nealsato: 「mixi大規模障害について その2」のエントリーをアップしました http://bit.ly/d3epia

2010-08-20 03:12:09
mala @bulkneets

mixiのmemcachedの問題、徐々にリソースが枯渇していく類のものではないです。接続数上回っても通常はエラーを返すだけで終了はしない。接続数が不足してる時に、複数のスレッドから同時に実行されるとマズイ処理が「低確率で」同時に実行されて、それが原因で落ちる。

2010-08-20 12:50:50
Shinji Tanaka @stanaka

@nealsato 先ほどRedbull届きました!ありがとうごさいます! http://yfrog.com/0moj4cj

2010-08-20 14:52:23
Neal Sato @nealsato

@stanaka Enjoy! 飲み過ぎに注意です(w

2010-08-20 15:20:23
埼玉の猫 @shmorimo

補足追記しました。 「mixi大規模障害について その2」 http://alpha.mixi.co.jp/blog/?p=2153

2010-08-20 15:45:39
埼玉の猫 @shmorimo

あるスレッドがepoll_wait(epfd)してるときに、別のスレッドがepfdを更新したらどうなるんだろう

2010-08-20 17:09:41
埼玉の猫 @shmorimo

memcachedの問題で排他制御が失敗する原因が判明しました! ネットワークI/Fが2つ以上ある場合に発生します

2010-08-20 18:03:35
埼玉の猫 @shmorimo

複数のstatic connが生成されるが それらが同じevent_baseを指してた workerが一つめのI/FをacceptOKにすると mainが動き出すが、workerは二つめのI/FをacceptOKにしようとして競合してました

2010-08-20 18:03:47
埼玉の猫 @shmorimo

これでグッスリ眠れます

2010-08-20 18:03:54
埼玉の猫 @shmorimo

s/複数のstatic conn/複数のstruct conn/

2010-08-20 18:07:13
埼玉の猫 @shmorimo

do_accept_new_connsの中でI/F分ループしてて、1周目でupdate_event()した時点でmainがepoll始めます。これが問題。2周目のupdate_event()とmainのepoll_dispatch=>event_queue_insertがぶつかる

2010-08-20 19:14:12
埼玉の猫 @shmorimo

I/Fが2個以上とはいえlo0があるから常に2個以上

2010-08-20 19:38:51
埼玉の猫 @shmorimo

-lオプションでI/Fを制限して、月曜日まで動かしておく。絶対に落ちないはず。落ちたら旅に出る。

2010-08-20 18:56:10
前へ 1 ・・ 6 7