ハードウェア増設

開発者ブログでもかかれてますが、本日5/11にハードウェア増設を行いました。実は今月の増設は3フェーズに分けて実施しており、今回はその2フェーズ目を行いました。ざっと書いてみます。

フェーズ1. 検索DB分離 + sennaバージョンアップ

先日の勉強会でもお話したとおり、日本語全文検索を実現するにあたって senna を利用しています。そのsennaのバージョンが昨年のとある古いバージョンだったということもあり、稀にインデックスファイルが破損する既知のリスクを孕んでいたため、その問題が解決された新しいsennaと、最近sennaとは独立して開発が行われているMySQLバインディング tritonn への変更をあわせて行うことにしました。また、以前からの運用に当たって、障害の切り分けや、検索の負荷の分離をしたかったため、新しくハードウェアを用意することにしました。この増強によって既存のDBのCPU負荷を約20%減らすことができました。

フェーズ2. 既存DBのInnoDB

フェーズ1の作業にて検索DBの分離が行われたため、既存のDBでFULLTEXT INDEXが不要となりました。結果、FULLTEXT INDEX利用にあたってMyISAMを使わざるを得なかったテーブルのInnoDB化が行えるようになったのです(しかもそのテーブルはかなりの頻度でupdateがおきるタイプのものでしたw)この作業により、table lockが減りLoadAverage等の負荷を軽減することに成功しました。

フェーズ3. ハードウェアリプレイス

これはフェーズ1で投入したハードである一定の性能が出せることが確認できたので、残りのDBサーバをそのスペックにリプレイスする作業です。現在機材の納品待ちなので目処が立ち次第ブログ等でアナウンス致します(5月末の予定です)

これらの投入によってシステム全体のスループットが上がるのですが、何かが上がると何かが詰まるのが世の常(?)なので、順次追っかけてチューニングをしていく次第です。

# そういえばsennaには本当にお世話になってるのでブラジルのグニャラさんにはお礼を言わなきゃなあ・・・