Railsコンソールからスクリプトを実行しています。スクリプトはMySQLデータベースをクロールし、最大500万のMongoDBドキュメントを作成します。
スクリプトの実行rails server
中に実行すると、リクエストの応答はMOPEDからの数千行の出力を待機する必要があることに気付きました。例:
MOPED: 127.0.0.1:27017 UPDATE database=survey_app_development collection=mongo_surveys selector={"_id"=>"509043ec2c5f64685b62c5b3", "questions._id"=>"509043ec2c5f64685b62c5b5"} update={"$set"=>{"questions.1.response"=>{"_id"=>"509043ec2c5f64685b62c5bd", "data"=>{"datepicker"=>"10/21/2011", "response"=>1319216400}, "comment"=>nil}}} flags=[] (0.0000ms)
MOPED: 127.0.0.1:27017 UPDATE database=survey_app_development collection=mongo_surveys selector={"_id"=>"509043ec2c5f64685b62c5b3", "questions._id"=>"509043ec2c5f64685b62c5b6"} update={"$set"=>{"questions.2.response"=>{"_id"=>"509043ec2c5f64685b62c5be", "data"=>{"response"=>"Morning"}, "comment"=>nil}}} flags=[] (0.0000ms)
MOPED: 127.0.0.1:27017 UPDATE database=survey_app_development collection=mongo_surveys selector={"_id"=>"509043ec2c5f64685b62c5b3", "questions._id"=>"509043ec2c5f64685b62c5b7"} update={"$set"=>{"questions.3.response"=>{"_id"=>"509043ec2c5f64685b62c5bf", "data"=>{"0"=>"yes", "1"=>"no", "2"=>"no", "3"=>"no"}, "comment"=>""}}} flags=[] (0.0000ms)
MOPED: 127.0.0.1:27017 UPDATE database=survey_app_development collection=mongo_surveys selector={"_id"=>"509043ec2c5f64685b62c5b3", "questions._id"=>"509043ec2c5f64685b62c5b8"} update={"$set"=>{"questions.4.response"=>{"_id"=>"509043ec2c5f64685b62c5c0", "data"=>{"response"=>"outdoor"}, "comment"=>""}}} flags=[] (0.0000ms)
MOPED: 127.0.0.1:27017 UPDATE database=survey_app_development collection=mongo_surveys selector={"_id"=>"509043ec2c5f64685b62c5b3", "questions._id"=>"509043ec2c5f64685b62c5b9"} update={"$set"=>{"questions.5.response"=>{"_id"=>"509043ec2c5f64685b62c5c1", "data"=>{"response"=>"5"}, "comment"=>nil}}} flags=[] (0.0000ms)
MOPED: 127.0.0.1:27017 UPDATE database=survey_app_development collection=mongo_surveys selector={"_id"=>"509043ec2c5f64685b62c5b3", "questions._id"=>"509043ec2c5f64685b62c5ba"} update={"$set"=>{"questions.6.response"=>{"_id"=>"509043ec2c5f64685b62c5c2", "data"=>{"response"=>"attest"}, "comment"=>nil}}} flags=[] (1.0002ms)
(Railsサーバーが実行されている状態で)スクリプトを十分に長く実行させると、httpリクエストは次のようになります。
[2012-10-30 16:24:44] ERROR Java heap space
[2012-10-30 16:25:12] ERROR Java heap space
[2012-10-30 16:26:11] ERROR Java heap space
だから、私の質問は:この動作を防ぐための設定はありますか?また、MongoDBに書き込むときに、サーバートラフィックが妨げられることを期待する必要がありますか?
Mongoid、Rails 3.2、JRuby 1.7.0、MongoDB2.2.0を使用しています