Hatena::ブログ(Diary)

cooldaemonの備忘録 RSSフィード

2007-11-04

KLab勉強会 #3 「Erlang による高可用システムの構築」の感想

まずは、有意義な時間を過ごせた事に感謝!

会社としての取り組み

既に社内で利用し始めているようで、とても羨ましい。現在、根回しに労力を割いている私とはエライ違いだ orz

もし、erlang ネタで次回があれば、プロダクション環境で運用する為のノウハウを聞いてみたいと思いました。

あー、懇談会に出席できたら良かったのに!!

net_kernel:get_net_ticktime/0

こんな関数がある事を始めて知りました。

調べてみると、net_kernel:set_net_ticktime/1 以外に kernel の configuration でも設定できるっぽい。

ブロックする処理

質疑応答で、ブロックする処理の扱いは?という質問が出た。回答としては、ノード上のプロセスがブロックされても問題ない…だったような?(ちょっと記憶が曖昧)

確かに、ノード上のプロセスがブロックされても、他のプロセスには影響が出ない。

しかし、ノードは OS から見ると一つのプロセスであって、そのプロセス自体がブロックされる事はありそうな気がする。

とりあえず、I/O に限って言えば、+K オプションを付けてノードを起動すると epoll が使われるので避けられるらしい。ただし、erlang を ./configure する際、--enable-kernel-poll を指定する必要がある。(昔、kqueue 使ってくれないかなぁと思い、手元の FreeBSD で試した所「kernel-poll not supported; "K" parameter ignored」と出たので、未検証で放置してます手元の mac で [kernel-poll:true] となったので検証開始ports から R12B-0 を入れて +K true でノードを立ち上げたら [kernel-poll:true] となった

後は、+A オプションで async-threads の数を増やすという手もあるかと。+A オプションに関しては みかログ: Erlangの+Aオプション こちらが詳しいです。

ememcached の性能について

質疑応答で、memcached と ememcached の速度比較の質問が出た。回答としては、少しだけ試した感じでは2倍くらい遅いとの事。

ん〜、erlang で書かれたサーバは、同時接続数が増えた際に、その素晴らしさを発揮し始めるので、そこを補足して欲しかったなぁと思いました。

ノードが "絶対" スケールしないよ!

帰りのエレベータの中で「ノード が "絶対" スケールしないよ!」と話し合ってる方々がいらっしゃった。

それを質疑応答の際に発言すれば良いのに(w;

えーっと、スケールってスケールアウトの略語だろうか?だとしたら、ノードは環境であって、その環境の上で動くアプリケーション(mnesia とか)がスケールアウトするように作られていれば、ノードがスケールアウトする・しないは関係ない話だと私は思う。

その他

id:Hamano さんはじめ、erlang を仕事で使っている方々と知り合えて嬉しかったです。

erlang もっと普及すると良いなぁ

HamanoHamano 2007/11/08 18:02 先日はお忙しい中参加頂きありがとう御座いました。
仰る通りディスクI/Oでのブロックに関する質疑の中で AIO を使用出来ると口走ってしまいましたが epoll の間違いでした orz
それにパフォーマンスに関する質問に答えられなかったという反省点もあり、近日中に本格的なパフォーマンステストを行ってみようと考えています。
その際には、またご意見ご感想を頂ければ幸いです。

cooldaemoncooldaemon 2007/11/09 17:21 こちらこそ、有意義な勉強会に参加させて頂きまして、ありがとうございました m(_ _)m & 検証結果、楽しみにしてまーす。
私もパフォーマンスに関しては、さっぱり検証していないので、自分が作ってるのが落ち着いたら、やってみようかと思います。

はてなユーザーのみコメントできます。はてなへログインもしくは新規登録をおこなってください。

トラックバック - http://d.hatena.ne.jp/cooldaemon/20071104/1194186538
Connection: close