Typo 5.3がメモリを使い過ぎる

公開日時 akira Sun, 28 Jun 2009 09:28:00 GMT

二、三日前から時々oom-killerが出るようになった。なんでかなと見てみたらずいぶんと太ったTypoのプロセスサイズがいくつか。一つあたり500MBとか……。

今までなんともなかったのになと思ったものの、それほど考えてみれば気にしていなかっただけで、実はけっこう前からこういう状態だったのかもしれないということに気付いた。おおむね自分が困るだけとはいえ、ちょっとほったらかしすぎた。動きを見てみると、プロセスが生成されて少しして数秒かけてプロセスサイズが大きくなっていくことがわかった。どうやら何かを読み込んでいるような動きに見える。

実はこのことに気付くほんの少し前のタイミングでPassengerのバージョンを変えたり、他のアプリケーションの配置を変えたり、GEM_HOMEを変えたりということをしている。そのため、まずう疑ってしまったのはそのあたりだった。その次にうたがったのは自家製コードのいくつか。といってもTypoのためには数十行のコードを書いた程度で、特別に問題になりそうなものは見付からない。

動いているプロセスにコードをつっこんでオブジェクトの様子を見てみるかとも思い始めていたのだが、ここでscript/consoleでも同じ現象が出ていることに気分いた(遅い!)。そして

if RAILS_ENV != 'test'
  begin
    ActiveRecord::Base.connection.select_all("select * from sessions")
  rescue
    begin
      ActiveRecord::Base.connection.current_database
      Migrator.migrate
    rescue
      # if there are no database, migrator doesn't no start
      # use case : rake db:create in rails tasks
    end
  end
end

このコードが加えられたのはこのあたり。これなら、とりあえずはlimit 1でも付けておけばよいだろうか。もっとやりようがありそうなものではあるが。

結局、問題が顕在化したのは保存しているセッションの数が多くなってきたからであった。実に602,788レコードもある。セッションデータの掃除は今でも(Typo 5.3ではRails 2.2を使っているが)手作業でやるのかな? (セッションだからdelete_allで十分かしら?)

$ script/runner -e production 'CGI::Session::ActiveRecordStore::Session.destroy_all(["updated_at 

追記

問題として報告しておいたところgithub上のリポジトリでは引用したブロックはコメントアウトされたようだ。5.3.1では直っているのかな。なんだか他のチケットも動き出したので、ちょうどそんなタイミングだったらしい。

横浜開港資料館に行ってきた

公開日時 akira Sat, 27 Jun 2009 11:46:00 GMT

開港150周年記念「港都横浜の誕生―新発見資料に見る近代化の原点」というのをやっていて、ちょっとおもしろそうだったので横浜開港資料館に行ってきた。そもそも中に入ったのが初めてだったこともあり、200円でけっこう楽しめた。

ちなみにたねまるの親玉(?)であるタマクスの木は開港資料館の中庭にあって、これは入館しなくても見られる。

横浜開港資料館のタマクスの木

Chez Akilaでランチ

公開日時 akira Mon, 22 Jun 2009 13:00:00 GMT

一月ほど前に通り掛かったときにお店が変わっていることに気付いた。新しく出来ていたのはChez Akilaというフレンチのお店。

平日ランチメニューは1,400円。ちょっと奮発気分が必要だが、内容はそれに見合うものでおいしかった。+300円でデザートを付けることができる。このときは紅茶プリンにアイスクリームを添えたもので、味もボリュームもお得感がある。

イサキのポアレパイを割ってみたR0014746 (そのほかの写真)

店内は白と明るい木の色でまとめられている。小さいお店ながら席数をしぼっているのか窮屈な感じはしない。禁煙なのもうれしい。