肉とビールとパンケーキ by @sotarok

少し大人になった「肉とご飯と甘いもの」

Trac(0.11.5) って重すぎやしませんか


てことで色々試してはみたんだけど,どうにもこうにも重すぎる気がします.誰か良い方法を知ってませんか?

ためしてみたこと

mod_python -> mod_wsgi

うーん,心無しか速くなった気も...
でも劇的な改善,みたいなものはないですね.所詮は Trac 本体そのものが重いんでしょうか.

考えられるものとして,DBへアクセスする部分が非常に重い(特にTimeline系とか)ので,色々情報とってきてほげほげは重いのかもしれない.timelineに表示する日数減らすとか情報減らすとかすれば少しは改善するかも.一応SQLiteの中身も見てみたけどIndexは張ってあるくさいしなあ.

あと,WSGIをデーモンプロセスモードで動かしてみるとかいうこともやってみました.
こうすると,DBへのアクセスが頻発するページ以外はたしかに爆速に!!!

ところが,Tracつかってるとしばしばおこる,DBがロックされる問題.しばらく立ってたら改善してたんだけど,デーモンプロセスモードだと,ロックが一向に開放されない.デーモンがSQLiteファイルをロックしたままはなしてくれないのかなあ?

などという問題があったので,断念.


どっちにしろDB重い臭いぞ.

検討してみた

SQLite -> MySQL or PostgreSQL
  • あんま変わらないとか言う噂だった
  • 移行は面倒そう
  • じゃあやめた.


で,もうどうしようもないのかな.とか思いつつ.
そもそも鯖のスペックが低い?ううううむ.

追記

デーモンプロセスモードにしてみた.spool size あげてみた.
一日たってあらためて使ってみたら意外と速くなってる気がしますw

ということで, mod_wsgi でいってみます.

追記に追記

あとさらに pysqlite のバージョンをあげたり(これで多分lock がなくなったと思う.POOL SIZE は 1000 にしても lock されるときはされた.),

静的ファイルの静的アクセス化をしたりして,

体感として,クソおもすぎてシネ! という感じではなくなってきた.あいかわらずタイムラインは重いけど.
まあ,とりあえず幾分よくなったからOKですね.

ちなみにいうと当方ファンレス鯖のためかなりCPUはひ弱なやつ使ってるのですが,それでも努力次第でそれなりにがんばれるということが証明できたのではないでしょうか(なぞ