nDiki : libevent
スポンサード リンク
Related term
2004年1月12日 (月)
■ [ Perl ] Memcached を使ってみる

WiKicker の高速化に Memcached が使えないかいろいろいじってみる。 評価は今のところ「微妙」。 Memcached はメモリキャッシュを提供するデーモンプログラムで、キーと値の配列を記憶しておいてくれる。 Slashdot でも使っているらしい。
ホスティングサービスのサーバ(FreeBSD 4.4-RELEASE)に入れてみる。
@ Memcached 1.1.10
依存している libevent と一緒にビルドしてインストール。
cd /tmp wget http://www.monkey.org/~provos/libevent-0.7c.tar.gz tar zxvf libevent-0.7c.tar.gz cd libevent-0.7c ./configure make cd .. wget http://www.danga.com/memcached/dist/memcached-1.1.10.tar.gz tar zxvf memcached-1.1.10.tar.gz cd memcached-1.1.10 CFLAGS='-L../libevent-0.7c -I../libevent-0.7c' ./configure --prefix=$HOME/local/memcached-1.1.10 make make install
'-l' オプションがうまく動かない。
bind(): Can't assign requested address failed to listen /PRE
指定しなくても動くのでとりあえず、よしとする。
ちなみに、EVENT_SHOW_METHOD=1 の結果は以下の通り。
$ EVENT_SHOW_METHOD=1 ./memcached libevent using: kqueue
@ Cache::Memcached 1.0.11
Perl 用の API モジュールを入れておく。 make test でこける。
Your vendor has not defined Socket macro MSG_NOSIGNAL
use Socket qw(MSG_NOSIGNAL PF_INET SOCK_STREAM); のところ。 Solaris/*BSD だと駄目らしい。 CVS版だと解決されいるようなので、こちらを。
@ Cache::Memcached CVS
cvs -d :pserver:anonymous@danga.com:/home/cvspub checkout wcmtools/memcached/api/perl
でとってくる。 こちらは Perl 5.005_03 という古いバージョンでいくつか問題。
our $SOCK_TIMEOUT = 2.6;
のところの our は Perl 5.005_03 には無いので、use vars に置き換え。 use bytes も 5.005_03 に無いのでコメントアウト。
IO::Handle::blocking() も無い。
sub my_blocking {
my ($sock, $bool) = @_;
my $old_flags = fcntl($sock, F_GETFL, 0)
or die "Can't get flags for the socket: $!\n";
if ($bool) {
my $flags = fcntl($sock, F_SETFL, $old_flags | O_NONBLOCK)
or die "Can't set flags for the socket: $!\n";
}
else {
my $new_flag = $old_flags & ~O_NONBLOCK;
my $flags = fcntl($sock, F_SETFL, $new_flag)
or die "Can't set flags for the socket: $!\n";
}
return $old_flags & O_NONBLOCK;
}
...でいいのかな? ささっと書いたんで一部バグっているかもしれないが、とりあえず代替しておく。
ちなみに Cache::Memecached の古い版、MemCachedClient-1.0.7 も試してみたけれどこちらも IO::Socket::INET が必要だったり面倒(なので、1.0.11 のパッチ当ての方をがんばった)。
@ スピード
うーん。思ったほど速くないな。 いや手元のLinuxだとかなり速いんだけれど、FreeBSD だとそうでもない。 Client側の問題が大きいようだ。 下手するとLinux BOX からADSL経由でキャッシュを読み込む方が、FreeBSD のローカルホストから読むより速かったりする。
どうも Socket の接続/切断まわりでもたついている感じである。 (無駄なはずなのだが)毎回 disconnect_all してしまった方が、Benchmark の値が良かったりするし。 接続 -> キャッシュ取得 -> 切断 で 0.6秒というのはちょっと遅すぎる。 もうちょっといじってみれば実用的な速度になるのだろうか?
- Cache::Memcached 1.13 の Perl 5.005_03 対応 (2004-06-05)
- WiKicker の Makefile.PL を Module::Inst... (2006-02-10)
- 他の Web サイトの情報を URI::Fetch でキャッシュ付き取得 (2005-10-29)
- 私的10大ニュース2004 [ comp ] (2004-12-31)
- Berkeley DB 4.2.52 + DB_File 1.808 をホ... (2004-02-08)
■よく検索されるキーワード
perl(62) torrent(54) linux(48) 提案書(47) windows(43) 書き方(41) 使い方(29) アジェンダ(26) x31(25) 充電式カイロ(25) cvs(22) インストール(20) サンプル(20) thinkpad(19) アジェンダとは(19) f-01a(18) wiki(17) c#(16) 感想(16) カイロ(16) usb(16) java(16) 秋葉原(15) debian(15) ヨドバシカメラ(15) subversion(15) 壁紙(15) 作り方(15) 静電気(14) apache(14) グッズ(14) デロンギ(13) フリー(13) sh-01a(13) ganttproject(13) 修理(13) ssh(12) svn(12) ヨドバシ(12) truecrypt(12) ダイソー(11) 手帳(11) activeperl(11) ubuntu(11) ほぼ日手帳(11) firefox(10) mew(10) mp980(10) ドラマ(10) 日本語(10) n-01a(10) google(10) tc-1(10) 評判(10) ツール(10) djunit(9) cgi(9) 動画(9) mp3(9) オイルヒーター(9) docomo(9) rcs(9) 除去(9) centos(9) メモリ(9) エネループ(9) 設定(9) p-01a(9) tortoisesvn(9) 無印(8) ケース(8) 口コミ(8) ミノルタ(8) メール(8) インストーラ(8) 会議(8) xampp(8) 加湿器(8) af(7) 値段(7)■注目キーワード
購入 買った 発売日 フリー 無料 価格 値段 作り方 選び方 使い方 方法 設定 サンプル ダウンロード 限定 在庫 予約 穴場 比較 検証 レビュー 感想 評価 評判 使用感 使ってみた 口コミ 噂 最新 MP3 動画 意味 お薦め お勧め おすすめ 便利 Blog ブログ mixi 修理 デザインProcess Time: 15.787629s / load averages: 0.11, 0.42, 0.38
nDiki by WATANABE Yoshimasa (profile)
Powered by DiKicker
Base theme by Nana (for tDiary)



スポンサード リンク