2

IBM Bluemix で Rails アプリを実行し、Blitz.io で負荷テストをしようとしています。ブラウザでアプリにアクセスすると、すべて問題ありません。ただし、Blitz がアクセスしようとすると、アプリがクラッシュします。ログ エントリは次のようになります。

2014-12-20T16:26:45.55-0500 [RTR]     OUT **[my app name]**.mybluemix.net -     [20/12/2014:21:26:43+0000] "GET / HTTP/1.1" 200 12784 "-" "blitz.io; e970e720c4f22c94f7d822731652a745@130.160.6.54" 75.126.70.42:54311 x_forwarded_for:"-" vcap_request_id:ba32f5d0-e157-4229-61f5-13eb7ab3d2d0 response_time:2.182336949 app_id:1e6ad01b-c7b4-4f57-8d9d-8d333807bb15

2014-12-20T16:26:46.60-0500 [App/0]   ERR /home/vcap/app/vendor/ruby2.0.0/lib/ruby/2.0.0/webrick/server.rb:284: [BUG] object allocation during garbage collection phase

これは何を意味するのでしょうか?これをデバッグする方法、または問題がどこにあるのかについて、私は少し途方に暮れています。アプリのコードに問題がありますか? 構成の問題?

ここで役立つエラー ログが十分に含まれているかどうかはわかりません。残りはここにあります:

http://pastebin.com/Jv6jUksv

4

3 に答える 3

2

アプリケーションで実行する Ruby バージョンを Gem ファイルで指定できます。Bluemix の Ruby ビルドパックは、Ruby v2.1.x、v2.2 などをサポートしています。

しかし、エラーの考えられる原因は、アプリケーションに割り当てられているメモリ クォータをアプリが超えていることだと思います。Bluemix は CloudFoundry を使用しています。これは、割り当てられたよりも多くのメモリを消費すると、アプリ インスタンスを強制終了します。"cf push" を実行するときに "-m" オプションを指定すると、アプリケーションに割り当てられるメモリを増やすことができます。例えば:

cf push -m 1G
于 2015-04-15T14:33:53.057 に答える
0

このエラー メッセージが表示された前後のメモリ使用量を確認する方法はありますか?

エラーが発生しました

[BUG] ガベージ コレクション フェーズ中のオブジェクト割り当て

明示的なメモリ制限のある環境 (おそらく IBM Bluemix と同様) で Ruby 1.8.7 を使用して、それらのメモリ制限を超えた場合。私のメモリはPBSディレクティブによって制限されています。

私にとっては、json gem がこの特定の JSON 文字列の制限よりも多くのメモリを必要とする大量の JSON を解析するときにエラーが発生します。

于 2015-01-13T23:38:58.907 に答える