先日KLabラボさんから公開されているRepcachedを試してみました(これとこれ)が、2008/04/11付けでマルチマスタレプリケーションに対応した新しいバージョンがリリースされたので、みたび試してみました。 環境は先日と同様CentOS4.6 on VMwarePlayerで仮想NICは1枚、NAT接続ですが、VMwarePlayerをバージョンアップした関係で、IPアドレスが192.168.141.128に変わりました。PHPのバージョンは前回と変わらず5.2.5で、memcache拡張は3.0.1(beta)です。 インストール、起動法は前回までと同じなので割愛。。。PHPスクリプトは以下のようにaddServerメソッドを使うよう変更しました。 <?php $ttl = 60; $servers = array(array('ip' => '192.168.141.128',
先ほどのmemcache管理画面の件の続き。 その他、登録されているキー一覧も表示できるようです 前から気になっていたんですが、memcachedのCのAPIとしては登録されているすべてのキーを取得するものは用意されていないはず。でも、先の管理画面では取得できてるわけです。で、どうやってるのかソースを見ていると。。。ありました。 <?php : function sendMemcacheCommand($server,$port,$command){ $s = fsockopen($server,$port); if (!$s){ die("Cant connect to:".$server.':'.$port); } fwrite($s, $command."\r\n"); $buf=''; while (!feof($s) && strpos($buf,"END\r\n")===fal
statsコマンドのサブコマンドのcachedump.これを使えば,キーのリストアップができます. telnetでやると,こんな感じです. memcachedをlocalhostで立ち上げたばかりだとします. # telnet localhost 11211 Connected to localhost.localdomain (127.0.0.1). Escape character is '^]'. stats items % カラなのを確認 END set 123 0 0 4 % set キー値 オプション・フラグ値 有効期間値 バイト数 abcde % わざと指定バイト数と違う文字数(5バイト)を入れてみる CLIENT_ERROR bad data chunk % ちゃんとエラーになった ERROR set 123 0 0 4 abcd % 今度はちゃんと4バイト入れてみる ST
memcachedを使っているんだけど、その機能に満足できない部分がでてきたのでメモ。 一つのキーで保存できるサイズの上限が1M。 1M以内に収まることのほうが多いと思うけど、画像をアップロードするときの一時ファイルをbase64エンコードして、memcachedに保存しようと思ったら、1Mを超えてしまってできなかった。 同時接続数の上限がどうも2000ほど。 トラフィックが集中したときにこの上限を超えたらしく、memcachedサーバが断続的に落ちた。メモリをflushして復旧。たまってたキャッシュは全部消えた。 memcachedサーバを再起動するとキャッシュが全て消える。 これはオンメモリなのでしょうがないけど。。。 ちなみにうちでは冗長性をもたすためにrepcachedを使っている。 さて、そこで解決できそうなものをピックアップ。 memstored 一つのキーで保存できるサイズの
某サービスでセッション情報を保持するために利用している memcached(repcached)に障害が起こった。 ちゃんと追えていないけど、おそらく以下のような原因。他の人がハマらないように。 障害発生まで memcached(repcached)の中には揮発したらそれなりにマズい情報が入っている。 repcachedサーバ2台のOS入れ替えをしていて、1台は再起動が成功した。 1台目のサーバへ2台目のサーバからのレプリケーションが完了したのをstatsのcurr_itemsにて確認した。 よって2台目を再起動するものの、起動しなくなった。 この時点では、1台は生きているから後でデータセンターいこうっと、という気軽な気持ちだった… 現象 生きている1台目のサーバで、以下のような現象が起こった… 値をsetする際に、ある閾値以上のexptimeを指定すると即expireされる。 その閾値は
Protocol -------- Clients of memcached communicate with server through TCP connections. (A UDP interface is also available; details are below under "UDP protocol.") A given running memcached server listens on some (configurable) port; clients connect to that port, send commands to the server, read responses, and eventually close the connection. There is no need to send any command to end the sessi
最近のWebシステム開発ではキャッシュを使うケースが増えつつある。各種Webアプリケーション向けフレームワークでもキャッシュをデフォルトでサポートしているものも多く、その筆頭に挙げられるのがmemcachedだ。 top風にmemcachedのステータスが確認できる memcachedは軽量で、あると便利だと思える機能が殆ど実装されていない。ステータスを監視するような機能もないが、そこは独自に開発されたmemcache-topを使えば解決する。 今回紹介するオープンソース・ソフトウェアはmemcache-top、memcachedのステータスを表示するコマンドラインスクリプトだ。 memcache-topはPerlで作られたスクリプトで、既に立ち上がっているmemcachedサーバを一覧し、そのステータスを表示してくれる。デフォルトで3秒ごとにリフレッシュされるようになっており、topコマ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く