Rails

Redmine で添付ファイルはデータベースに格納しないの?

先日の記事でもちょっと書いていましたが、Redmine ではチケットへの添付ファイルや文書の登録、また Wiki に貼り付けた画像やその他の添付ファイルは、REDMINE_ROOT 以下の files フォルダに格納されます。 チケットへの添付ファイルの追加 (snip) 添付ファ…

9arrows を (MySQLで) 試してみました

本家から 9arrows の最新版を落とし、対応するバージョンの Rails も入れておきます。データベースには PostgreSQL を使用するみたいですが、今回は MySQL で強引に動かしてみます。 % svn co http://9arrows.googlecode.com/svn/trunk/ 9arrows % gem insta…

Redmine の ERD を描いてみました

ちょっと前に Redmine を調べていたので載せておきます。機能としての特徴は書籍もいくつか出ているので、それらを参考にしながら触ってみればよしとして、書籍にないもう少し実装よりのところが気になるものです。バージョンは以下のとおり。 % svn info UR…

Rails から AP4R サーバへの接続の可用性とか、負荷分散とか...

AP4R について書くのはずいぶん久しぶりな気がしますが... (^^; Rails で AP4R を使っている場合、以下の流れでメッセージを介して非同期が実現されています。 # ユーザーからのリクエストで、1,2 が同期的に実行され、3 以降が非同期で実行されます。 0. AP…

Rails-1.2.3、2.1.2、2.2.2、2.3 の性能の変遷 (render :text にて)

Rails-2.3 の RC1 をまだ触ってなかったので、インストールがてら試してみました。 render :text => "Hello World!" なアプリに対して、Apache Bench から負荷をかけ、スループットの平均 (5回計測し、最大と最小を除いて平均値を算出) をとっています。 2.1…

scaffold アプリのなかでコストの高いメソッド

ちょっと前に、性能をみるために用意した ActiveScaffold とふつうの scaffold によるアプリに、DTrace をかけてみました。50 リクエストを処理するのに、数百万のメソッド呼び出しが観測されます。(DTrace の変数領域の都合上、あまり多くのリクエストはか…

Rails 実行中に GC にかかっている時間

前回の記事では Rails 実行中のメソッド呼び出しすべてをトレースしてみましたが、今回のターゲットは Garbage Collection に要している CPU 時間です。前と同じく、render :text => "Hello World!" なアプリに対して Apache Bench から 1万リクエストの負荷…

DTrace をためしてみました

Rails 実行時の CPU 使用率がけっこう高いので、DTrace でなにかわからないものかと使ってみました。 以下のような環境のもとで、ここのサンプルをちょっと改良して、Apache Bench (以下、ab) で負荷をかけている Rails アプリをトレースしてみました。関数…

ActiveScaffold の性能をみてみました

ここ最近、各アプリケーションサーバにおける性能比をみるために、render :text => 'xxx' ばかり動かしてました。 で、ちょっと数字がですぎている気がしたので、もうちょっと複雑なアプリケーションでのスループット感覚をつかんでおきたくてやってみました…

JRuby と CRuby の Rails アプリの性能比 (並列度との関係)

前回の記事では、Apache Bench で並列度を 10 に固定した状態で、アプリケーションサーバごとの render :text => 'xxx' の性能比をみてみましたが、Charles Nutter さんからもコメントをもらったので、並列度に応じた性能の変化を調べてみました。 Charles O…

JRuby + GlassFish v2.1

昨日の比較では、GlassFish の v3 Prelude を使っていたのですが、先週 v2.1 の Final リリースもあったなぁと思いだし、同様に試してみました。 v2.1 だとわりと安定していますし、CRuby + Mongrel の組み合わせよりスループットでましたね。あくまで、 ren…

JRuby と CRuby の Rails アプリの性能比 (render :text にて)

Thin とか GlassFish とか気になってはいたんですが、自身の体感として分かっていなかったので、簡単なところで比べてみました。"render :text => ... "のスループットをみてますが、絶対値的な性能ではなく、相対的な感覚を掴みたくてやってみました。 環境…

開発者間でDBデータを共有するためのRakeタスク

仕様 rake db:data:dump DB内のすべてのテーブルのデータを抽出(schema_infoテーブルを除く) 接続先DBは、#{RAILS_ENV} に従います 抽出先は、#{RAILS_ROOT}/db/data YAML形式(日本語対応) rake db:data:load #{RAILS_ROOT}/db/data 内の YAML形式のデー…