インフラいじり
先週、次のブログでRedmineの応答性能に関する発表スライド(2012-10-20 RxtStudy)を知りました。
スライドは次のURLです。
職場からはslideshareがアクセス禁止になっているので、自宅ワークになります・・・。
スライド、Redmineが1.x系列から2.x系列になる(=Ruby on Railsが2.3系から3.2系になる)と、応答性能劣化が発生するけれど、チューニングすればRedmine 1.x系列と同等以上に速くなります、という内容です。
なお、Redmine 2.0から2.1で性能改善が少しあります(スライドp.15)。
このスライドのチューニング例をみて、すこしいろいろ試したくなって1週間ほど遊んでみました。
MySQLのチューニングについて
いままでMySQLは、Linuxディストリビューション搭載のものを入れて、最低限の設定だけして使用していました。
スライドでは、4GB以上のメモリがあるDB専用マシン向けの設定ファイルであるmy-innodb-heavy-4G.cnfを/etc/my.cnfに使う方法を紹介しています。
CentOS 6の場合、MySQL 5.1が搭載されており、このファイルは/usr/share/mysql/の下に置かれています。
MySQLは、ストレージエンジンとしてMyISAM形式、InnoDB形式他が選択できるようになっています。MySQL 5.1はデフォルトがMyISAM形式なので、ふつうにCREATE TABLEすると、MyISAM形式となってしまいます。つまり、今までRedmineをインストールした環境ではMyISAMになっていました。
昔は「MyISAMは高速」といわれていましたが、検索と更新が混在する環境(つまりRedmineはこれに近いかと)では、InnoDBの方が有利なようです。
ということで、まずストレージエンジンをInnoDBにするところから開始です。
InnoDB plugin
MySQL 5.1は、InnoDBを標準搭載していますが、それとは別にInnoDB pluginなるものがあります。
これは、InnoDBエンジン改善型で、MySQL 5.5のInnoDBの実装となります。CPU、メモリ、I/Oのすべてにおいて改良されたもので、性能向上が計られています。詳しくは次のブログで。
MySQL 5.1では、5.1.38からRC版InnoDB pluginがバンドルされ、5.1.46でGA版となっています。
CentOS 6(Red Hat Enterprise Linux 6)では、6.3以降のバージョンでこのInnoDB pluginが含まれるようになります。
なお、MySQL 5.5のInnoDBはバージョンが1.1とInnoDB pluginの1.0.6よりさらに性能改善が進んでいるとのことです。
MySQL 5.1か5.1+InnoDB pluginか5.5か
ということで、パラメータチューニングをする前に、どのバージョンのMySQLを使うかを考えた方がよいかと思い始めました。
Cent OS 6の場合、remiリポジトリをyumに追加すると簡単にMySQL 5.5がインストールできるようです。が、依存するyumを増やすのも気が進まないので、5.1+InnoDB Pluginの道を進んでみようと思います。
報告はいずれ後日・・・
MySQLパフォーマンス関係書籍
以前買っていた本ですが、今回ほぼはじめて開きました。
- 作者: Baron Schwartz,Peter Zaitsev,Vadim Tkachenko,Jeremy D. Zawodny,Arjen Lentz,Derek J. Balling,伊藤直也(監訳),田中慎司(監訳),吉川英興(監訳),株式会社クイープ
- 出版社/メーカー: オライリージャパン
- 発売日: 2009/12/14
- メディア: 大型本
- 購入: 17人 クリック: 373回
- この商品を含むブログ (45件) を見る
また、今回以下の本を買ってしまいました。
エキスパートのためのMySQL[運用+管理]トラブルシューティングガイド
- 作者: 奥野幹也
- 出版社/メーカー: 技術評論社
- 発売日: 2010/06/12
- メディア: 大型本
- 購入: 16人 クリック: 204回
- この商品を含むブログ (35件) を見る
Railsサーバー(Unicorn)のチューニングについて
Redmine 2.xになって応答性が劣化した要因は、Rails 3でコードサイズが大きくなったため、GC(ガベージコレクション)の負荷があがったためとのことです。
そこで、冒頭のRedmine性能のスライドでは、Unicornの設定でRubyのGCを停止させ、5リクエストに1回GCを実行するという技を繰り出しています。
これを試してみようと思います。報告はいずれ後日・・・。
munin監視ツール
インフラいじりにあたっては、サーバーのリソース(CPUやメモリ、ディスクI/Oなど)をしばしば参照します。Linuxはコマンドで詳細に情報を取ることができますが、手間といえば手間です。
そんなときに、お手軽かつ有効な監視ツール munin を知りました。
監視ツールを自動起動にしておいて、Webブラウザでアクセスすれば各項目がグラフで可視化されて見れるというお手軽さです。すばらしい。
CentOS用にはEPELリポジトリに上がっているので簡単にインストールできます。
CentOS 6へのインストールと設定ファイル修正手順を記載しているWebページがありました。
Nginxいじり
リバースプロキシの運用実験も兼ねて、Nginxいじりをしています。書籍を買ってしまいました。
- 作者: Clement Nedelcu,長尾高弘
- 出版社/メーカー: アスキー・メディアワークス
- 発売日: 2011/04/21
- メディア: 大型本
- 購入: 2人 クリック: 714回
- この商品を含むブログ (23件) を見る