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

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

解析大会に参戦するべくmemcached-1.4.4 + libevent-1.3bでビルドしてみた。ただ、明日の朝の会議をこなさないといけないので、続きは明日の午後。

2010-08-13 00:09:08
Masanori ITOH @thatsdone

@kzk_mover accept(2)が EMFILE で失敗するなら、kernel の中で fd の確保に失敗してるケースだと思うよ。malloc()ってことはないと思うけどなぁ。こんな古いの関係ないよねぇ? http://bit.ly/cfzN3j

2010-08-13 00:14:23
Kazuki Ohta @kzk_mover

@thatsdone あ、EMFILEとmallocは関係ないですよ。そもそも event loop を抜ける現象をまだ再現させれていないという。memcachedのバグ報告を漁るのは良さそうですねえ。

2010-08-13 00:16:27
Kazuki Ohta @kzk_mover

@thatsdone あと、今回は1.4.4なので "This is fixed in 1.2.8 and dev" は関係なさそうな気がします。

2010-08-13 00:17:17
Kazuki Ohta @kzk_mover

とりあえず今のところの調査履歴をblogに書いてみた > http://bit.ly/bSGMYi #mixi

2010-08-13 00:57:34
Kazuki Ohta @kzk_mover

けどよくわからんなーくそーくそー

2010-08-13 00:57:59
Kazuki Ohta @kzk_mover

mixiの問題を再現出来ている出来ていないに関わらず、fd溢れた時に止まる問題は明日報告しよう...

2010-08-13 01:04:30
Neal Sato @nealsato

うお!Thanks!こちらの検証環境についての詳細も明日ブログにあげれるか担当者と相談します RT @kzk_mover: とりあえず今のところの調査履歴をblogに書いてみた > http://bit.ly/bSGMYi #mixi

2010-08-13 01:11:56
KOIZUKA Akihiko @koizuka

ニコニコのコメントサーバーは広場で結構セッション数あるけど、とりあえずlibeventではなく生でepoll使ってるからlibeventの問題については影響なさそうだ

2010-08-13 01:51:32
KOIZUKA Akihiko @koizuka

ニコニコ広場のサーバーは同時セッション数(TCP持続)が1台あたりピークタイムで5万超えぐらいか

2010-08-13 01:56:07
Kazuki Ohta @kzk_mover

@nealsato 接続数が増えた時のあからさまなメモリ破壊を発見しました。-cを超えた時に発動します。新しいlibeventでは色々治っているみたいなので、素直にlibeventをupgrade=>検証するのも筋かもです... > http://bit.ly/ceQmgP

2010-08-13 03:09:06
グニャラくん @gunyarakun

@kzk_mover epoll.c:167 while(nfds < max) もイコール入れたほうがいいYO!

2010-08-13 08:21:01
Kazuki Ohta @kzk_mover

ほんとDA! 修正しました! > http://bit.ly/ceQmgP RT @tasukuchan: @kzk_mover epoll.c:167 while(nfds < max) もイコール入れたほうがいいYO!

2010-08-13 08:25:55
Kazuki Ohta @kzk_mover

無言 + no core dumpで落ちるとの事だけど、libevent+ memcached共にexit前は必ずstderrにログを吐いているように見えた. 情報が出ないとなんとも言えないな... > http://bit.ly/aMgcWo

2010-08-13 08:36:10
Shinji Tanaka @stanaka

@kzk_mover @nealsato 手元の環境でmemcached-1.4.4&libevent-1.3bでcoredumpせずに無言で落ちる現象が確認できました。でも、はてなで使っているmemcached-1.4.0&libevent-1.1aでは発現せず。

2010-08-13 09:29:58
Shinji Tanaka @stanaka

ちなみにカーネルは、CentOS 5.3の2.6.18-128.4.1.el5xenです。クライアントは、Cache::Memcached::Fastで、45台 x 100プロセスで、デフォルト設定で起動したmemcachedに負荷をかけてみました。

2010-08-13 09:34:32
Neal Sato @nealsato

再現確認ありがとうございます!引き続きlibevent内の調査をしてます RT @stanaka: @kzk_mover @nealsato 手元の環境でmemcached-1.4.4&libevent-1.3bでcoredumpせずに無言で落ちる現象が確認できました。...

2010-08-13 11:47:44
Neal Sato @nealsato

@kzk_mover メモリ破壊もあったのですね!memcached関連のircでも最新版をオススメされましたが、kernel/gcc/libcあたりもまとめて最新版にする必要がありそうです。

2010-08-13 11:55:53
Shinji Tanaka @stanaka

@nealsato すいません、memcached-1.4.0+libevent-1.1bで落ちなかったのは、試行回数不足でした。繰り返していたら、こちらでも落ちることが確認されました。

2010-08-13 12:15:12
Shinji Tanaka @stanaka

libeventを1.4系の最新の1.4.14bにしたら、「[err] event_queue_remove: 0x15ea9d88(fd 30) not on queue 8」というエラーが出るようになった。MLでも報告があるみたい http://htn.to/fKenq3

2010-08-13 13:54:03
Shinji Tanaka @stanaka

@yamaz sysctlの値を取得してみました。ほぼCentOS 5.3のデフォルトのままになってます。 http://gist.github.com/522314

2010-08-13 13:58:13
最速配信研究会山崎大輔 制約理論及び待ち行列理論による技術経営コンサルとエンジニア起業相談やってます @yamaz

@stanaka うちはfs.file-maxを極端に大きくしてます http://bit.ly/c2CN5s 理由としては秒間数万リクエストを捌く際にソケットがTimewait状態で残ってFDを使い尽くすのを恐れるからです。

2010-08-13 14:28:26
達人が教えるつぶあん🇺🇦 @kazeburo

memcachedのstats settings初めて知った! @tmaesakaの連載にあるのに! http://bit.ly/cJlQ2p

2010-08-13 16:01:09
達人が教えるつぶあん🇺🇦 @kazeburo

memcachedのstatsのcurr_connections ってのは若干わかりにくいよね、実際は開いているFDS

2010-08-13 16:02:24
Neal Sato @nealsato

memcachedとlibeventの問題について詳細をアップしました - http://alpha.mixi.co.jp/blog/?p=2109

2010-08-13 17:57:45
前へ 1 2 ・・ 7 次へ