Debian に Kyoto Tycoon、Net_KyotoTycoon をインストール
前回の記事でカウンタを SQLite3 に移行することに成功したのだが、なんか妙にパフォーマンスが安定しない。何度か F5 で読み込み直すと 100msec ちょっとぐらいで返ってきたり(それでも遅いけど)、500msec 以上掛かったり。
もしかして SQLite2 だと問題ないのかなと思い結局 php-sqlite を入れたりして実験してみると、確かに SQLite2 のコードの方が安定して 100msec を切っていた(それでも同時アクセスが集中すると簡単に遅くなっていく)。
アクセスが少ないんだからそれでいいじゃんという話もあるが、せっかく好き放題できるサーバなのだから好き放題やってみようと思い、Kyoto Tycoon のサーバを立てて PHP からアクセスさせてみることにした。こんなアクセスの少ないサイトに対してこんな豪華なものが使えるなんて幸せだ。
mikio さんのチュートリアルを参考にインストールする。とは言っても王道の流れで入れられるので特に壁になるようなことはない。
問題なく動いているようなので、PHP からアクセスできるように Net_KyotoTycoon をインストールする。これは pear 経由でインストールする必要がある。こちらを参考にしながら進める。
実際に運用させるにあたり、取りあえずデータベースファイル置き場を準備する。
そのままだと root 権限で動いてしまうので setuidgid で www-data に切り替えて走らせる。
もしかして SQLite2 だと問題ないのかなと思い結局 php-sqlite を入れたりして実験してみると、確かに SQLite2 のコードの方が安定して 100msec を切っていた(それでも同時アクセスが集中すると簡単に遅くなっていく)。
アクセスが少ないんだからそれでいいじゃんという話もあるが、せっかく好き放題できるサーバなのだから好き放題やってみようと思い、Kyoto Tycoon のサーバを立てて PHP からアクセスさせてみることにした。こんなアクセスの少ないサイトに対してこんな豪華なものが使えるなんて幸せだ。
mikio さんのチュートリアルを参考にインストールする。とは言っても王道の流れで入れられるので特に壁になるようなことはない。
apt-get install g++ wget http://fallabs.com/kyotocabinet/pkg/kyotocabinet-1.2.24.tar.gz tar -zxf kyotocabinet-1.2.24.tar.gz pushd kyotocabinet-1.2.24 ./configure make make install popd wget http://fallabs.com/kyototycoon/pkg/kyototycoon-0.9.7.tar.gz tar -zxf kyototycoon-0.9.7.tar.gz pushd kyototycoon-0.9.7 ./configure make make installチュートリアルのように ktserver を起動して、ktremovemgr から set をしようとすると接続に失敗した。これは恐らく iptables によるものだと思うので、ループバックインターフェイスを正しく経由するように明示的に -h localhost を加えることで上手く動いた。
問題なく動いているようなので、PHP からアクセスできるように Net_KyotoTycoon をインストールする。これは pear 経由でインストールする必要がある。こちらを参考にしながら進める。
apt-get install php-pear pear channel-discover openpear.org pear install HTTP_Request2-alpha pear install openpear/Net_KyotoTycoon-betaインストールもできたので実際にスクリプトを書いてみると安定して 30msec でレスポンスが返ってくるようになった。素晴らしい。
実際に運用させるにあたり、取りあえずデータベースファイル置き場を準備する。
cd /usr/local mkdir ktserver cd ktserver mkdir db chown www-data db chgrp www-data db続いていつものように daemontools 経由で起動させるために run スクリプトを設置する。
そのままだと root 権限で動いてしまうので setuidgid で www-data に切り替えて走らせる。
cd /etc/service mkdir ktserver vim run
#!/bin/sh exec 2>&1 exec setuidgid www-data ktserver -host 127.0.0.1 -le /usr/local/ktserver/db/counter.kch
chmod 700 runこれといったチューニングはしていないけどそこまでシビアな要求に答えるわけではないのでよしとしよう。