php-mpos運用上の問題と対策

カスタマイズ容易なフロントエンド、php-mpos

マイニングプール運用で広く使われているphp-mpos、広く使われてるのは何故かな、と思ったとき、やはり導入しやすさがあるのではないかとおもう。global.inc.phpという設定ファイルをいじるだけで大方の設定が完了する。ただ、導入しやすいからトラブルが無いかと言うとそれは別の話。

勝手にcronjobが止まる問題

一定時間でブロック発見や支払い処理、プール内ステータスの更新をphp-mposは行なっているのですが、これがよく止まる。エラーが出た場合、メールを送って知らせる仕様にはなっているのですが、何故か半分ぐらいはメールも送られずに勝手に止まる。1度でもエラーが出ると run-cron.sh -f をしない限りずっと分配が行われない為、マイナーからの報告で気づくことが多い。cronjobに手を入れてエラーが出ても停止しないようにする、-fオプション付きを一定時間毎に実施するなどで回避はできることはできる。但し、エラーの原因をしっかり抑えておきたい為、自分は一度停止したらそのまま停止するようにしている。後述の逆億万長者問題などもあったので。

逆億万長者問題

coin分配がミスることがごく稀にある。php-mposが5億ZNY払い出しなんてことを過去にしようとしたことがあった。残高足りなくてエラーメールが届き、cronjob停止。DBに記録されている内容に問題はない。propotional_payout.phpの処理に問題があるところまでは突き止めた。他のプールでも発生している様子。払い出し金額をチェックし、問題があれば止まるように修正を入れたが、それから3ヶ月、再発無し。そのうちpplnsに移行するから、この問題はもう気にしなくて良くなるかな…

Webアクセスが重い問題

今のうさぎには全く無縁のWebアクセスが重い問題。ダッシュボードのグラフ表示が重いという問題もあるのだが、VPS会社の選択も大事。ネットワーク速度は公開されていないが、会社によって明らかに差が出てくる。小規模プールなら、さくらVPSで問題なし。GMO系は帯域弱い気がする。(GMOはCPUもメモリアクセスも全体的に遅い気がする)

冗長化は必要?

ラウンドロビン組めば冗長化はできるけど、よっぽどアクセスが集中しない限りいらないと判断している。Webサーバはcloudflare等のCDNを噛ますことで、DDoSにも一定の耐性を持つことができるので、冗長化の優先度はstratum-miningよりも低め。むしろその予算でテスト環境を用意して、修正したmposや新しいcoinの追加がうまく出来てるかを確認するほうが良いと思う。