さくらのVPSでのredmineの高負荷問題はgitリポジトリの同期

さくらのVPSでredmineが不安定だった問題、いろいろあったか安定の兆し。

問題を整理するとさくらのVPSに接続できなくなるほどLoad Avarageが高くなるという問題があった。fastcgiで動かしていてrubyのプロセスが残っていたのでRedmineが悪さをしているのでは?という疑いを持っていた。しかし、Redmineの実行をpassenge(mod_rais)に変えても状況が改善されなかったため別の要因を探しだした。

そして負荷が高くなった時間に規則性があり、その時に動かしていた以下のコマンドを止めてみたところ問題が再現しなくなった。それは以下のコマンドである。

ruby script/runner "Repository.fetch_changesets" -e production

それまで一週間と安定して実行できていなかったのに、一ヶ月はLoad Avarageが1以下なのでこれが原因だったと思ってもよいだろう。

ただ必要があって実行していたコマンドなので全てが解決したわけではない。実行していたコマンドはredmineのプロジェクトにgitリポジトリのコミットを同期するものである。

何も設定していなければgitにコミットをpushしたところでそれをredmineが知る術はない。通常はredmineを表示するとおもむろにredmineはgitリポジトリの内容を参照しにいく。この処理が重いのでredmineの表示するときにリポジトリを見に行かせるのをやめて、先のコマンドで定期的に取得していたのである。

問題が先のコマンドにあるのか、gitのリポジトリに何か問題があるのか、これから検証する必要があるが原因の箇所に近づいただけでも前進である。

人見知りソフトウェアエンジニアです。ビジュアル系、お笑い、Pixarが好き。勢いで吉本超合金おたけびBOTを作った。オールザッツ漫才が放送されない東京在住。

趣味や日常からアウトプットの場としてブログを書いています。自作のWordPressプラグインにGitHub Flavored MarkdownAmazonJSなど。