2015-01-28(水) [長年日記]
■ 日記のチューニングをしている
先日Herokuに移設したこの日記、まだトラブルが出続けているのでちょこちょこいじっている。とくに"Request timeout"が頻発しているので、性能まわりをチューニングしないとなー、と。
まずはストレージに使っているMongoDB、検索頻度の高いコレクションにいくつかindexを作成(これはもともと様子をみながらやる予定だったもの)。これでちょい早くなった(abでざっくり測って1.5倍くらい)。なおindexの初期化はとりあえずプラグインで(←ひどい)。
あとは並列度あげるかと思っていたら、ちょうど@machuがrpaproxyでpumaを使うようにしていたので、そのままパクることに(笑)。でもtDiaryのセッション管理だとうまく動かないので、memcacheを使うように変更。これも2倍以上のスピードが出た。余録としてそんなに頻繁にTwitter認証をしなくてよくなった。
副作用として、puma (unicornでも)またもやrecent_rssプラグイン利用時にSecurity Errorが出るようになってしまった。$LOAD_PATHにはもうtaintedなパスは含まれないので謎だ。とりあえず「recent_rssプラグインを使わない」という消極的対処……。
これでも頻度が下がったとはいえまだ"Request timeout"が出るんだよなぁ。キャッシュをmemcacheに入れてみるか? でもそんなに効かなさそうな気も。たまにR14(メモリ超過)の警告が出るので並列度はまだチューニングが必要そう。あとはAddonを入れてボトルネックを探さないと。dynoをrestartすると出なくなったりするので、dynoによって当たりハズレがあるのかも知れない。AWSガチャみたいに。