「Linux/KyotoTycoonインストール/rocky10」の版間の差分
(→KyotoTycoon自動起動設定) |
(→dir設定) |
||
| (同じ利用者による、間の4版が非表示) | |||
| 行72: | 行72: | ||
ldconfig -p | grep kyoto | ldconfig -p | grep kyoto | ||
| − | == | + | ==dir設定== |
<pre> | <pre> | ||
| − | mkdir /var/ | + | #dir生成 |
| − | / | + | sudo mkdir -p /var/ktserver |
| + | sudo mkdir -p /var/ktserver/log | ||
| + | sudo mkdir -p /var/ktserver/ulog | ||
| + | sudo mkdir -p /var/ktserver/snapshot | ||
| + | #権限変更 | ||
| + | sudo chown -R rocky:rocky /var/ktserver | ||
| + | sudo chmod -R 755 /var/ktserver | ||
| + | #logファイル設置 | ||
| + | sudo touch /var/ktserver/log/ktserver.log | ||
| + | sudo chown rocky:rocky /var/ktserver/log/ktserver.log | ||
| + | sudo chmod 644 /var/ktserver/log/ktserver.log | ||
</pre> | </pre> | ||
| − | + | ==起動・停止のテスト確認== | |
| + | <pre> | ||
| + | /usr/local/bin/ktserver /var/ktserver/test_casket.kch | ||
| + | </pre> | ||
| − | + | [ctrl+c]で停止 | |
| − | + | ||
| − | + | ||
| − | + | ||
| − | == | + | ==KyotoTycoonサービス設定== |
memcachedプロトコルを使う場合のポートは11401とした | memcachedプロトコルを使う場合のポートは11401とした | ||
2026年4月7日 (火) 18:20時点における最新版
目次
KyotoCabinetの準備
開発ツールを入れる
dnf groupinstall "Development Tools" -y dnf install -y \ zlib-devel \ lzo-devel \ xz-devel \ lua-devel
KyotoCabinetが必要なのでインストール
cd /usr/local/src wget https://dbmx.net/kyotocabinet/pkg/kyotocabinet-1.2.80.tar.gz tar xvf kyotocabinet-1.2.80.tar.gz cd kyotocabinet-1.2.80 ./configure make -j$(nproc) make install
共有ライブラリ登録
echo "/usr/local/lib" > /etc/ld.so.conf.d/kyotocabinet.conf ldconfig
確認
$ ldconfig -p | grep kyoto libkyotocabinet.so.16 (libc6,x86-64) => /usr/local/lib/libkyotocabinet.so.16 libkyotocabinet.so (libc6,x86-64) => /usr/local/lib/libkyotocabinet.so $ /usr/local/bin/kcutilmgr version Kyoto Cabinet 1.2.80 (16.14:6) on Linux
KyotoTycoonの準備
dnf install -y gcc gcc-c++ make lua-devel export CXXFLAGS="-std=gnu++11 -fpermissive"
KyotoTycoonインストール(64bit
cd /usr/local/src wget https://dbmx.net/kyototycoon/pkg/kyototycoon-0.9.56.tar.gz tar xvf kyototycoon-0.9.56.tar.gz cd kyototycoon-0.9.56 export CPPFLAGS="-I/usr/local/include" export LDFLAGS="-L/usr/local/lib" ./configure make -j$(nproc) make install
return 301なエラーが出る場合
エラー詳細
ktremotedb.h:301:16: エラー: cannot convert ‘bool’ to ‘char*’ in return 301 | return false;
ktremotedb.h の以下を修正して、再コンパイル
- return false; + return NULL;
KyotoTycoonライブラリ登録
echo "/usr/local/lib" > /etc/ld.so.conf.d/kyoto.conf ldconfig
確認
ldconfig -p | grep kyoto
dir設定
#dir生成 sudo mkdir -p /var/ktserver sudo mkdir -p /var/ktserver/log sudo mkdir -p /var/ktserver/ulog sudo mkdir -p /var/ktserver/snapshot #権限変更 sudo chown -R rocky:rocky /var/ktserver sudo chmod -R 755 /var/ktserver #logファイル設置 sudo touch /var/ktserver/log/ktserver.log sudo chown rocky:rocky /var/ktserver/log/ktserver.log sudo chmod 644 /var/ktserver/log/ktserver.log
起動・停止のテスト確認
/usr/local/bin/ktserver /var/ktserver/test_casket.kch
[ctrl+c]で停止
KyotoTycoonサービス設定
memcachedプロトコルを使う場合のポートは11401とした
vi /etc/systemd/system/ktserver.service
[Service] Type=simple ExecStart=/usr/local/bin/ktserver \ -port 1978 \ -tout 30 \ -th 8 \ -log /var/ktserver/log -ls \ -ulog /var/ktserver/ulog -ulim 256m \ -sid 1 \ -bgs /var/ktserver/snapshot -bgsi 180 -bgsc lzo \ -pid /var/ktserver/kt.pid \ -plsv /usr/local/libexec/ktplugservmemc.so \ -plex port=11401#opts=f#tout=30 \ /var/ktserver/db_casket.kch#opts=l#bnum=2000000#msiz=1g#dfunit=8 Restart=always RestartSec=3 [Install] WantedBy=multi-user.target
変更後に、以下、読み込みを必ず行う。
sudo systemctl daemon-reload
起動
sudo systemctl start ktserver
自動起動
sudo systemctl enable ktserver
状況確認
systemctl status ktserver
起動オプション
th=8 処理スレッド数 bnum=2000000 バケット数は100万レコードの2倍値 opts=ls データベースオプションは、4バイトアドレッシング、線形リスト ktopts=p データは永続化 msiz=12g DBファイルの先頭2GB分をmmapでマップしてIOを効率化することを意味する(搭載メモリが16Gぐらいだと12Gで設定 dfunit 8個のフラグメンテーションを検出した際に解消 ktcapsiz=10g 最大メモリ使用量。(LRU)
参考:http://blog.kazupon.jp/post/20476065695/kt-msgpack-fork
参考:http://seesaawiki.jp/w/kurt0027/d/kyototycoon
参考:http://www.slideshare.net/estraier/kyoto-tycoon-guide-in-japanese
オプション設定例
普通のキャッシュサーバ
#bnum=20000000#ktcapsiz=10g
永続的キャッシュサーバ
ktserver ... casket.kch#opts=l#bnum=2000000#msiz=1g#dfunit=8
参考:http://www.slideshare.net/estraier/kyoto-tycoon-guide-in-japanese
参考:http://fallabs.com/blog-ja/promenade.cgi?id=98
メモリ最適化
デフォでは使えないので必ずメモリ数は変更する dbname="$basedir/casket.kch#bnum=2000000#msiz=12g#dfunit=8"
サーバが16GB搭載してれば12GBぐらいとする(msiz=12g
サーバが6GB搭載してれば4GBぐらいとする(msiz=4g
サーバが1GB搭載してれば600MBぐらいとする(msiz=600m
ログの場所
tail -f /var/ktserver/log
ファイルハッシュデータベースの場所
ls -ltA /var/ktserver/casket.kch
php連携
memcacheプロトコルが、まんま使えるのでmemcache接続コードのportを変更するだけ
telnetで動作確認
$ telnet 127.0.0.1 11401 set key1 0 3600 6 value1 get key1 VALUE key1 0 6 value1 END
終了はctrl+]
参考
http://cloud-berry.jp/wordpress/?p=161
バックアップなど http://d.hatena.ne.jp/fat47/?of=43
