0

環境

以下で構成される単純なサービスを作成しました

  • Python スクリプト
  • Flask フレームワークでの実行
  • Heroku でホスト - (現在 1 つの dyno を実行)

データ転送の仕組みはやや独特です

  • 何かが Heroku アプリを呼び出す
  • Heroku アプリは urllib2.urlopenGoogle-GTFS API を呼び出すために使用し、Python スクリプトは GTFS Python モジュールを使用してこのデータを解析します。
  • 次に、Python は ( json.dumps) JSONを返します

問題

このサービスで blitz.io テストを 30 人の同時ユーザーで実行しましたが、多くのタイムアウトの問題が発生します。

heroku ログには、これらのエラーが多数表示されます

2013-10-13T02:30:20.101085+00:00 heroku[router]: at=error 
    code=H19 desc="Backend connection timeout" method=GET path=myapppath myappurl fwd=ipaddress dyno=web.1 connect=5001ms service= status=503 bytes=

質問

これを修正するにはどうすればよいですか?

4

1 に答える 1

0

H19 Heroku エラーのドキュメントからの抜粋:

ルーターは、Web dyno へのソケットを開こうとして 5 秒後に接続タイムアウト エラーを受け取りました。これは通常、アプリが圧倒され、新しい接続をタイムリーに受け入れられないことを示す症状です。複数の dyno がある場合、ルーターは H19 を記録して標準エラー ページを提供する前に、複数の dyno を再試行します。

何個のダイノスを使用していますか?30 人の同時ユーザーの負荷を処理できるようにするには、さらに多くのユーザーが必要になるようです。

アプリケーションによっては、リクエストごとに GTFS サービスに接続する必要がないようにキャッシュ レイヤーがあると役立つ場合もあります。

于 2013-10-13T18:46:41.960 に答える