2012-05-08 2 views
-3

リクエストが多すぎるとアプリケーションがダウンする理由を理解できません。リクエストに最大限に対応できるようにアプリケーションをテストするにはどうすればよいですか?多くのリクエストがあると、アプリケーション自体がハングアップするのはなぜですか?

+1

tomcat/logsディレクトリに何が起こっているかを確認して、ここに投稿してください。確かにcatalina.outには何かがあります。 –

+0

あなたはアプリケーションに何を期待するべきでしょうか? – home

+0

あなたが読む時間http://www.catb.org/~esr/faqs/smart-questions.html –

答えて

0

リクエストが多すぎるとアプリケーションが停止する理由を理解できません。

特定のアプリケーションについて質問している場合は、われわれはどちらか分かりませんが、問題の原因を推測できる証拠はありません。証拠を探す場所:

  • ログを確認してください。
  • リバースプロキシを使用している場合は、プロキシのログを確認してください。
  • バックエンドデータベースのログを確認します。
  • システムレベルのパフォーマンス統計を確認してください。例えばVMスラッシング、ディスクI/O過負荷などの証拠を探します。
  • 病的なGCの動作を確認してください。
  • 並行性のボトルネック、デッドロックなどを示す、ブロックされた/詰まったスレッドを確認します。

あなたは一般的なケースでは求めている場合は、原因の数に制限はありません。あまりにも多くのスレッド

  • を作成する外部リソース(例えば、データベース接続)
  • のうち実行

    • 要求を破棄しないようにすべての要求をキューに入れようとしています。
    • 同時実行のボトルネック
    • 負荷がかかってパフォーマンスが低下する病理アルゴリズムまたはデータベースクエリの設計。
    • 壊れたエラーリカバリ。例えば予期しない例外が発生し始め、リソースリークが発生します。
    • のように...

    とどのように要求に応答するためにその最大容量のために自分のアプリケーションをテストするために...

    が繰り返しあなたに要求を送信するためにテストハーネスを作成します。サーバがどの程度の速度を維持できるかを確認します。これを行うための既存のfreameworksがあります。

  • 0

    なぜアプリケーションがハングアップしていると思いますか?長期間稼働しているだけかもしれませんか?

    「リソースが不足している(DB接続など)が不足しているようですが、このケースのログのどこかに例外スタックトレースが表示されるか、並行性に問題があります。

    スレッドダンプを作成し、すべてのスレッドが期待通りの動作をしているかどうかを確認する必要があります。 TomcatやSQLサーバには、内部にいくつかのバグが存在する可能性は低いので、アプリケーションのスレッド(データベーススレッド、ロジック、サーブレットスレッド)だけに注目することができます。ログを調べたり、必要に応じてアプリケーションを追加したりして、アプリケーションの動作を停止する場所を探してみてください。

    +0

    ビクターに感謝します。 – JackAss

    +0

    私のアプリケーションをテストする方法を学ぶ必要があります。 – JackAss

    関連する問題