Archive for the ‘Kyototycoon/cabinet’ Category

 

kyototycoon ulog削除の管理

2月 2nd, 2014

更新ログの削除作業 http://fallabs.com/blog-ja/promenade.cgi?id=116 master masterでもあまり変わらないのかな $ ktremotemgr slave -uf -host 192.168.0.99 -port 33333 master/ulog.001/0000000052.ulog 24397417 1391329555421000000 $ ktremotemgr slave -uf -host 127.0.0.1 -port 33333 master/ulog.002/0000000052.ulog 24396302 1391328292340000000 master masterにしているので同じくらい同じ物を書き込んでいるけどログは違う。 とりあえず時間指定して $ ktremotemgr slave -ur -ts 1390090118966000000 -host 127.0.0.1 -port 33333 で指定時間より前の物は消えた。 すべてのサーバーのulogの一つ前の時間をチェックして、一番古いものより古い時間を設定したいと思います。 かなりの勢いでログが貯まるのが怖いのでここは自動化が必要ですね。

Read full article | コメントは受け付けていません。

pfsockopenでkeepaliveでkyototycoon

1月 24th, 2014

もともとそのつもりで作ったのですが fcloseしているところがあったので閉じているとこが判明・・・ 何度もつなぎ直していました。 fcloseをやめたら問題なくkeepaliveでプロセス以上にコネクションが増える事はありませんでした。 * pfsockopenでつなぐ。fcloseしない。 * HTTP/1.1で接続する これだけで問題なく動作しています。 アプリケーションサーバーとバックエンドサーバーが多対多なので、振り分けを整理するとコネクションをかなり減らす事ができます。 2つkyototycoonを動かしているので、これも同じ振り分け方にするとかなり良くなりそうです。 php-fpmもstaticでプロセス数を固定したら計算通りの動きになるので良い感じになると思います。 プロキシーからアプリケーションへの振り分けも共通化しないと行けないのでこれを作らないと。

Read full article | コメントは受け付けていません。

subprocess check_output , check kyototycoon

2月 8th, 2013

http://docs.python.org/2/library/subprocess.html#replacing-older-functions-with-the-subprocess-module nagios用のスクリプト pythonからktremotemgrを呼んで状態を確認する 2.6なのでcheck_outputが使えなかった http://docs.python.org/2.6/library/subprocess.html#module-subprocess popenのところだけ from subprocess import Popen,PIPE # 略 p = Popen(["ktremotemgr","report","-host",options.hostname,"-port",str(options.port),"-tout","2"], stdout=PIPE)  output = p.communicate()[0]  if re.search(r’db_total_count’, output ):    m = re.search(r’db_total_count: ([0-9]*)’, output )    count = m.group(1)    m = re.search(r’db_total_size: ([0-9]*)’, output )    size = m.group(1)    print “OK: %s %s:%d count:%s size:%s” % (service, options.hostname, […]

Read full article | コメントは受け付けていません。

kyototycoon lua 複数取得を少し変えてみた。

12月 3rd, 2012

フラグデータを値データを分けて保管するためにluaを利用していたのですが getの時 function get_player( inmap, outmap )  local key = inmap.key  local dbid = tonumber(inmap.db)  local playerdb = kt.dbs[dbid];  local item = playerdb:get(key)  if item then    local ix = kt.mapload(item)    for k,v in pairs(ix) do      outmap[k]=v    end  end  return kt.RVSUCCESS end これで ktremotemgr script -port 30132 get_player key test db […]

Read full article | コメントは受け付けていません。

kyototycoon dual master & recover by ulog + mysql backup

11月 13th, 2012

http://fallabs.com/blog/promenade.cgi?id=18 dual masterはお互いにreplicationするだけで良いみたい。 ulogのコピーは最後の方法で。 終わり。 mysqlバックアップの話。 http://aws.amazon.com/jp/rds/ > 最大5分前まで、保持期間内の任意の時点に DB インスタンスを復元させることができます。自動バックアップの保持期間は、最大35日間まで設定できます。 13.5.8. InnoDB データベースのバックアップと復旧 http://dev.mysql.com/doc/refman/5.1/ja/innodb-backup.html × mysql enterprise backupってのは商用版でしか使えないそうです。 × mysqlhotcopyはisamのみinnodbではダメ ・停止してバイナリの完全バックアップ ・mysqldump ・バイナリログからの差分復旧 構成は、master – slaveにして、本番参照用slave以外に、 他システムから利用されない予備のslaveを作り、それを定期バックアップすると良い。 この状態であればサーバーを停止して完全なバックアップを取ることもできる。 予備のslaveはデータを直接見たりする管理にも使える。 slaveオプションに、log-bin log-slave-updatesが必要 http://dev.mysql.com/doc/refman/5.1/en/replication-options-slave.html#option_mysqld_log-slave-updates A -> B -> Cと書いてある部分 log-slave-updatesはAでの更新もBのバイナリログに出力 log-binはBだけのものなのでBでは両方必要 日 ・バイナリバックアップ:そのまま使えるのでリストアが速い。 ・msqldump:バイナリが壊れてる可能性があるので必須 (http://dev.mysql.com/doc/refman/5.5/en/mysqldump.html  slave設定を停止してからdump開始。 mysql> STOP SLAVE SQL_THREAD; mysql> SHOW SLAVE STATUS; //  mysqldump […]

Read full article | コメントは受け付けていません。

check signal count ?

10月 5th, 2012

memcached plugableで動かしたのを止めて、みると # kchashmgr inform /var/path/to/queue.kct count: 2 size: 401152 countはsignalのようですね? ログはシリアライズした物の方が復帰しやすい気もするけど。 凄く簡単なゲームを作っているのですが想像したよりゲーム作るの大変です。。。 1週間くらいで作ろうかと思った物が3週間ほどかかりそうです。。。 まぁ1週間は無理ですが、2週間ちょっとならまずまずか・・・独り言。

Read full article | コメントは受け付けていません。

空回りsetをしたので、メモ

10月 2nd, 2012

11,921,801 回 set 7,877 秒 1,513/qpsくらいですね。 他の処理もしてるのでまったく性能比較等には使えませんが 自分の開発環境で、メモリー占有は32Mくらいでこの数字は悪くないですかね

Read full article | コメントは受け付けていません。

kyototycoon /rpc/set で php curl が遅かった原因

9月 26th, 2012

追加問題発生。さてどうする。 apacheを介したときのphp+curlの挙動がおかしい問題です。 このままでは使えないので。。。いろいろ調べた結果 結論からになりますが、curl使うの辞めました〜 fsocketopenで自分でリクエストつくって流すだけです。 複雑な処理は何も無いので一瞬で完成。phpとcurlを弄った時間はムダでした。 速度には何の問題も無いです! colenc=Uの件もphp+curlの問題だったようです。BもUも速いです。 === ↓直ったと思ったら、apacheを介していると挙動が違います。 ↓php+curlのバージョンの問題とか何かの原因のようです。 結論から言うと colenc=U で urlencodeしたデータをpostしていたのが悪かったようで colenc=Bのbase64_encodeにしたら問題なくなりました。 colenc=Uで使ってみたのですが http://fallabs.com/blog-ja/promenade.cgi?id=99 を見直し、作者さんのサンプル通りにcolenc=Bに戻しました。 同じことやってるのにエンコードを変えるとcurlの挙動が変わっているようです。 curlのinfoの数値を colenc=U ["url"]=> string(34) “http://192.168.0.22:50821/rpc/set” ["content_type"]=> string(25) “text/tab-separated-values” ["http_code"]=> int(200) ["header_size"]=> int(144) ["request_size"]=> int(161) ["filetime"]=> int(-1) ["ssl_verify_result"]=> int(0) ["redirect_count"]=> int(0) ["total_time"]=> float(1.001801) ["namelookup_time"]=> float(1.9E-5) ["connect_time"]=> float(9.1E-5) ["pretransfer_time"]=> float(9.2E-5) ["size_upload"]=> float(1048) ["size_download"]=> float(0) ["speed_download"]=> float(0) ["speed_upload"]=> […]

Read full article | コメントは受け付けていません。

php kyototycoon

8月 25th, 2012

ドラクエ10でもkyototycoonを利用しているとのことで 動かないのを上げておくのもなんだなと・・・更新してみました。 https://github.com/junichi-otake/php-kyototycoon colencのところを見るように更新しました。 簡単な動きは利用出来ますので、よかったら参考にしてください。

Read full article | コメントは受け付けていません。

kyototycoon backup

8月 6th, 2012

http://fallabs.com/blog-ja/promenade.cgi?id=108 こちらを参考にbackupコマンドを書いて、syncでコマンド実行を利用してみたいと思います。 ktremotemgr sync [-host str] [-port num] [-tout num] [-swname str] [-swtime num] [-ssname str] [-ssbrd] [-db str] [-hard] [-cmd str] Synchronizes updated contents with the file and the device. コマンドスクリプトの書き方がイマイチわからないけど よくわからないので、同じ構成で試してみる。複数DBも同じなのかな ktremotemgr: DB::synchronize failed: :50321: 5: internal error: DB: 8: logical inconsistency: postprocessing failed よくわからないけどエラー。 コマンドスクリプトに実行権限がないとこのエラーがでるようです。 $ ktremotemgr sync -port 50321 -db item.0.kch […]

Read full article | コメントは受け付けていません。