@blog.justoneplanet.info

日々勉強

CentOSにmembaseをインストールする

CentOS 5.3の32bit版にインストールしてみることにした。

■インストール

以下のコマンドでrpmからインストールできる。

wget http://c2978342.ltd.cloudfiles.rackspacecloud.com/membase-server-community_x86_1.6.4.rpm --referer="http://www.membase.org/downloads"
rpm -ivh membase-server-community_x86_1.6.4.rpm

ダウンロードサイトの仕様上、wgetにリファラーをつけた。インストールが完了すると以下のメッセージが表示される。

Starting Membase server[  OK  ]

You have successfully installed Membase Server.
Please browse to http://localhost.localdomain:8091/ to configure your server.
Please refer to http://membase.com and http://membase.org for
additional resources.

Please note that you have to update your firewall configuration to
allow connections to the following ports: 11211, 11210, 4369, 8091
and from 21100 to 21199.

By using this software you agree to the End User License Agreement.
See /opt/membase/LICENSE.txt.

■設定

ブラウザから設定ができるらしいので、以下のコマンドでポート8091番を開ける。ついでに上述のメッセージに従って、11211番、11210番、4369番も同様に対処しておく。

system-config-securitylevel-tui

http://localhost:8091/にアクセスすると悪そうな顔したキャラが表示されるはずだ。後は画面の指示に従えば良い。

■ベンチマーク

上手く書き込みできるかを検証するついでにベンチマークしてみる。

$memcache = new Memcache();
$memcache->connect('localhost', 11211);
$start = microtime(true);
for($i = 0; $i < 1000; $i++){
    $memcache->set("k{$i}", "abcdefghijklmnopqrstuvwxyz");
}
$end = microtime(true);
print($end - $start);// 0.19418982505798

以前にmemcachedのベンチマークで使用したコードをそのまま使うことができるのが素晴らしい。

勝手評価

速度はmemcachedの2~3倍程度かかるようだが、他のKVSよりも数倍高速である。複雑な構造を必要とせずハッシュテーブルとして使用するだけならば、オススメできる気がする。

不具合:保存ができない

管理画面にアクセスし(http://localhost:8091/index.html#sec=monitor_buckets&zoom=zoom_minute)Data Bucket>Item Countを見ると0のままで保存がされていない。

原因

memcachedが既にポートを使っていた。

対策1

以下のコマンドでmemcachedをstopする。普通の人はこれで良いと思う。

/etc/init.d/memcached stop
対策2

以下のコマンドでmemcachedをアンインストールする。membaseがあればmemcachedは要らないってこともあり得る。

yum remove memcached
確認

以下のコマンドで確認すると良いかもしれない。

lsof -i:11211
悪い例

memcachedがポートを使っている。

COMMAND    PID      USER   FD   TYPE DEVICE SIZE NODE NAME
memcached 2500 memcached   26u  IPv6   8072       TCP *:11211 (LISTEN)
memcached 2500 memcached   27u  IPv4   8073       TCP *:11211 (LISTEN)
memcached 2500 memcached   28u  IPv6   8077       UDP *:11211
memcached 2500 memcached   29u  IPv4   8078       UDP *:11211
良い例

membaseがポートを使っている。

COMMAND  PID    USER   FD   TYPE DEVICE SIZE NODE NAME
moxi    6481 membase   40u  IPv6  38065       TCP *:11211 (LISTEN)
moxi    6481 membase   41u  IPv4  38066       TCP *:11211 (LISTEN)

■特性

memcached互換のNoSQLデータベース「Membase」がオープンソースで登場」を参考のこと。デフォルトでGUI管理ってのはなかなか頑張ってるよね。

コメントはまだありません»

No comments yet.

RSS feed for comments on this post.TrackBack URL

Leave a comment