TokyoTyrantでシステムを組んで、ようやく(俺側の)バグも減ってまともに動き出したのだが... 何かおかしい。特に80万件ほど突っ込んでいる検索サーバが 使っているうちにどんどん遅く、しまいに応答を返さなくなる のだ。これがひどくて、検索クエリだけならともかく レコード数さえ数えられなくなる のでマジ異常。
# tctmgr inform -port 20301 localhost
だけで5分くらい固まるからな。
xmsizってのは
`xmsiz' specifies the size of the extra mapped memory. If it is not defined or not more than 0, the extra mapped memory is disabled. The default size is 67108864.
というわけでmapped I/Oのためのメモリ領域のようだ。特にデータベース全体が メモリにすっぽり収まっているサイズの場合は高速化が期待できる。
しかし.....これを11テーブル(プロセス)、各10スレッドで動かすとこうなる。
特に注目すべきはcommitedの値。overcommitが許されるからといって 実メモリの倍ってどういうことだ?! 感覚的には何かおかしなことが 起こってもおかしくない(持って回った言い方だが俺もこれが本来の状態かわからんのだ)。
しかし、当然のごとく運用実績の乏しいTokyoTyrant/TokyoCabinetでは 似たような事例はなく。しょうがないからソースを読んだのだが..... テーブルDBにつけてる全部のインデックスでmmap()呼んでるうううう(^^;
なんでこんな実装になってるんだ。11プロセスで打ってあるインデックスは99個。 各テーブル自体もtchdbなので 99+11=110回mmmap()をコールするわけだxmsizのサイズで。 デフォルトが67MBだから....67*110=7370MB....
グラフとだいたい計算もあう。もちろんLinuxのVMががんばるから多少オーバーしても大丈夫なんだ。 でも、1日くらい20並列くらいでクエリーを投げつづけているとだんだん遅くなってきて...というパターン。
やっぱりTokyoTyrantのテーブルDBって「おまけ」で、 誰もまともに使ってないんだね....大失敗だ。しかも初期の負荷テストでは全く 気付くことは不可能だと思いませんかね。
まだ記事書いてないのにGoogleで 「TokyoTyrant Munin」でページがトップにくるとかなんなの.....
結局TokyoTyrant調子悪いのは相変わらず。しかし直せる見込みも ないまま試験運用に突入する。今のところ分かっている症状として、
というのがある... え?使い物にならなくね? と思ったアナタは正しい。 割り当てワーカーが枯渇したらリクエストはacceptするべきではないし(でないと ロードバランサーも処理を割り振れない)、レプリケーションなどの重要な通信は、 一般の検索リクエストのコネクションとは別に処理するべきだ.......
まあでも、これはGPLのフリーソフト。何を言ったところで 自分で直せ!というブーメランなので、仕方なく外的監視にとどめることにする。
というわけでTokyoTyrantのMunin用プラグインを書いたというのが今日のお話。
OSはDebian前提だけどmunin1.4以降ならなんでも動くと思う。
前もってPerlのCache::Memcachedをインストールしておいてください。 -M CPAN -e shellでもいいし最近はcpanmコマンドでインストールするのが 楽で良いでしょう。
# cpanm Cache::Memcached
http://linux.papa.to/image/20101109_munin_tokyotyrant_.gz をダウンロードして、「tokyotyrant_」(アンダーバー必須)というファイル名にして /usr/share/munin/pluginsに放り込んでください。
# gunzip 20101109_munin_tokyotyrant_.gz # cp 20101109_munin_tokyotyrant_ /usr/share/munin/plugins/tokyotyrant_
/etc/munin/pluginsディレクトリで、 アンダーバーの後にポート番号をつけてシンボリックリンクをはります。 TokyoTyrantのデフォルトポートは1978だけど省略することはできません。
# cd /etc/munin/plugins # ln -s /usr/share/munin/plugins/tokyotyrant_ tokyotyrant_1996
忘れずにmunin-nodeのリスタート...ああでも、munin-runで動作確認してから の方がいいかもしれないね。
# munin-run tokyotyrant_1996 tokyotyrant_bytes_allocated.value 30960 tokyotyrant_curr_items.value 9
問題なさげなら全体をリスタート。
# /etc/init.d/munin-node restart
こんなグラフになります。
別のホストのTokyoTyrantを監視したい場合は/etc/munin/plugins.dや munin.confにenv.hostの記述を追加してください。
[tokyotyrant_*] env.host "127.0.0.1"
まあmemcached_を改造したやっつけだけど一応障害発見には役立つかな....
半年以上前から計画していた休みですから....(以下愚痴)
我が社には リフレッシュ休暇 という制度があって毎年1日ずつ最大10日まで溜まっていた。本当は5日の時点で休みたかったので一昨年上司にお伺いをたてたところ... 「まだ5日だし10日までためられるからいいよね!」 とやんわり否定されたので我慢していた。
が!...もう会社バレ覚悟して言うけど、弊社は昨年某社に吸収合併(経営統合と言えば聞こえはいいが)されてしまい、どうも 某社:「俺んところにはそんな制度ないから廃止で」弊社組合:「おk」 と二つ返事で返答してしまったらしい。
と、百人くらい集まってた説明会で、俺がブチ切れたのが昨年。
「あのな、こういう制度は確かに時流にあっていなくて廃止されるのは仕方ないことかもしれない。業績悪いしな。でも、 これは過去おまえら組合の先輩達が長い労使交渉を経て獲得してきた『権利』なんだよ! なんで会社の言うなりになってしかも組合員に何の説明もなく廃止できるんだ?なんのために組合費払ってるんだ!まず交渉してこい糞があああ!」
......って言ったら移行期間として1年延びたという顛末です(笑) まあいいです、俺もうクビだし。権利は行使させてもらおう。
初日は、京都駅→地下鉄で東山→青蓮院→知恩院→いもぼう平野屋でお昼→バスで五条坂→六花亭(茶屋)でひとやすみ→清水寺→二年坂→高台寺→バスで祇園→美々卯で夕食、というコースでした。
実は修学旅行以来、京都は来たことないので新鮮でした。その修学旅行も京都タワー近くのゲーセン(今はなかった)で半日以上潰してたしな・・・・・
写真はすべて20mm /F1.7でAutoで撮っています(調整しろよ)。 全然使わないうちに旧機種 になってしまったが少しでも使わねば。
しかし六花亭の(高くてまずい)団子が一番良い写りのような 気がするのはなんの因果か・・・写真と関係ないけど、団子と飲みもので950円とられたよ。観光地はボッタクリとはいえこれはひどい。
GF1、この画角に慣れなくて非常に苦労した。単焦点だと位置取りが結構厳しいな。団子みたいな小さい物は簡単に綺麗にとれるんだけどね。
でも、最後の「壹錢洋食」店舗みたいな、「暗いがフラッシュが炊けないような場所」で、大雑把に撮っても綺麗に写るのは嬉しい・・・これは今まで使ってきたコンデジでは(俺の腕では)不可能なレベル・・・
実は....休みはだいぶ前に決まっていたが「京都に行こう!」と思ったのは先月終わりなので 全く宿が取れず新大阪に泊まっていた 情弱ぱぱんだです....おはようございます。
知らなかったけど、秋の観光シーズンは京都市街のホテルというホテルを押さえられてるのね。多分業者が大人買いするんだろうなあ。....ということはJTB経由とかなら新幹線セットで安く取れた?....馬鹿過ぎるな。
移動距離が半端なかったな。阪急で嵐山直行→常寂光寺→嵐電嵐山近くのDoppoでパスタランチ(950円)。天気は薄曇りだったし、最盛期より少し手前だったけど、和んだ。
常寂光寺は 拝観料が安く感じるくらい綺麗 だった。 嵯峨野の町並みを一望できる上に良く手入れされた庭は驚嘆に値する。 これは冬、雪が積もるころに来ても絵になるんじゃないかなと...いや侘び寂びどころではなく寒いかもしれないが。
金閣寺に直行するつもりだったのだが、嵐電にコトコト揺られているうちに気が変わって龍安寺前で下車。 同じく下車した可愛いJC3人組のケツをついていったわけでは断じてない!(死)
竜安寺、あのJR東海のCMでもおなじみの「石庭」がある...のだが.... 平日とはいえ手前の踊り場は観光客でごったがえして風情も何もあったものではなかった。夜、静かに独りで眺められるオプションとか売れるんじゃないのか?と思わせるくらい風情がなかった!
龍安寺からきぬかけの坂に出て、バスで金閣寺前へ。しかし...今までは混んでいるといっても日本人だったが、 ここはまさに中華パラダイス!! 他人を押したり割り込み追突はあたりまえ、他人がカメラかまえている前にはいるのもあたりまえ、常時拡声器みたいな大音量でしゃべりまくる集団はまさに圧巻だった。中国人は死ね!!金ピカってだけで来るなよ!!
というわけで観光どころではないので、お茶をいただいて(500円)退散。
バスで銀閣寺→哲学者の道→銀閣寺喜み家でクリームあんみつ→バスで京都駅→ポルタのはーべすとでおばんざい、というコースです。
銀閣寺は....今度は日本人のアフォが中でポーズとってて全然絵にならんかったよ。あれ中はいれるんだね。
哲学の道は.....桜の木が植えてあるので春は綺麗だろうね。今は多少紅葉しているけど、なんてことのない小道だった。なので外れて銀閣寺喜み家でクリームあんみつ。うまうま。
今回の旅の大失敗は(宿もあるけど)バスを過信したことだな....銀閣寺から5系統のバスに乗って 京都まで戻るのに1時間20分 かかった....ありえんわ。しかもその間乗車率120%の寿司詰め。マジへとへとになって食べ物屋を探す気力もなくバイキングにするていたらくですよ。
2日バス地下鉄共通券を買ったけど、どんなにあしげく使っても観光では1日1000円分をバスで消費するのは不可能という結論に達した。移動は極力地下鉄で行った方がいいと思うが、その地下鉄も阪急は乗れないのであまり意味ないんだよなー!阪急に乗れれば四条河原などの中心街を巧く回れるはずなのだが。 うまくいかないものだ....
なんで俺地下鉄で奈良向かってるの三 ┌(^o^)┘ピュー
本当は御所に行こうと思って250円の切符を買ったのに....逆向きに「奈良」って地下鉄が来たので思わず飛び乗ってしまった。無計画にもほどがある....
京都の割とこじんまりした侘び寂びの世界から、力強い(画角に困る)巨大建築にかこまれてホクホク。ちょうど俺の通ってた中学も修学旅行にきていて目を細める。俺らも修学旅行で来たよな。でも大仏様以外全然記憶にないわ....
鹿の糞を超機動で回避しつつ駅へ戻り、そこから関西本線で法隆寺駅へ。間がないので飯は抜き!遷都君を横目にみつつタクシーをけたぐり法隆寺に着く。900円だったかな?
東大寺と法隆寺間は中学のときは確かバスで移動してて、そんなに遠い印象はなかったのだが、電車だとけっこうかかるね.....
まあ当たり前っちゃ当たり前、仏像の写真が撮れなくて貼れないわけだが、金堂のお釈迦様に感動しましたわ。あと宝蔵院の百済観音像も。こんなのが1000年以上の時を超えて残ってるのはすばらしいわ。
16:42の新幹線なのでもう本当に時間がなかったが、これまた登ったことのない京都タワーにのぼってみる。770円!たけえ!とか思ってしまったが暮れゆく京都の町並みは寂しくもあり美しくもあり....
今のうちに美しい日本を目に焼き付けておこう。
おそらく20年もしないうちに中国に併合されて、京都も奈良も灰燼と化すんだろうから.....
と、物騒なことを考えるくらい中国人が目立った旅行だった。冷静に考えると、俺がたまーに行く旅行ってのは、いわゆる観光地から離れたところばかりだから、たまたま外人と会わないだけかもしんないけどね。
まあ俺も真っ先に殺されるんだろうけど。
「一億玉砕」「進め一億火の玉だ」も思考停止なんだけど、 「戦争は悪いことだからやめましょう」「核兵器は危ないので廃絶しましょう」「両手をあげて降参すれば許してくれます」も 付ける薬がないくらいの思考停止 だと思うんだけどどうよ。
触れるのが嫌だから蓋(思考停止)しちゃうのが日本人の悪い癖だわな。戦争を「しない」ためには軍備がいる。世界がこんなんなんだから理想だけ呪文のように唱えても広島で座り込みしても絶対世界は変わらない。
俺的には、日本の核武装は不可避な選択のように思える。もしくは日本が日本でなくなるか、どっちか選ぶ時がきっとくるな。
でも、あれだね。戦時中に死んでった若者と同じように、そういう教育されたから、それを呪文のように唱えながら戦わずに死んでいくんだろうな、俺らは。