Tomcat のserver.xml のデバッグ レベル (0 ~ 99) は速度にどのように影響しますか?

StackOverflow https://stackoverflow.com/questions/102058

  •  01-07-2019
  •  | 
  •  

質問

Apache Tomcat のサーブレット コンテナの起動を制御する server.xml には、ほぼすべての主要コンポーネントのデバッグ属性が含まれています。debug 属性は、指定する数値に応じて多かれ少なかれ冗長になります。0 が最も冗長で、99 が最も冗長です。多数のユーザーにサービスを提供する場合、デバッグ レベルは Tomcat の速度にどのような影響を与えますか?0 は速く、99 は比較的遅いと思いますが、これは本当ですか。エラーがスローされていなければ問題はありませんか?

役に立ちましたか?

解決

広範なロギングにはかなりの時間がかかります。だからこそ、

if (log.isDebugEnabled())
  log.debug(bla_bla_bla);

したがって、実稼働サーバーを冗長に設定すると、パフォーマンスに重大な影響を与えると思います。多数のユーザーにサービスを提供する必要があるとのことなので、これは運用サーバーのことだと思います。

他のヒント

ログはエラーを報告するだけでなく、何が起こっているかを追跡する役割も果たします。場合によっては、コードをデバッガー内で実行できない場合は、ログを記録することが唯一の選択肢になります。

これが、ログ出力が非常に冗長になる可能性がある理由です。そして私は本当に 平均 それ。一度 Catalina のログレベルを TRACE に設定したところ、数メガバイトのログファイルができてしまったのを覚えています。あれは 前に サーバーはヒットをまったく受信しませんでした。それは巨大なパフォーマンスの大食いでした。数秒で数えられる。

Tomcat 自体のログが必要ない場合は、そのコンポーネント上で Tomcat をアクティブ化しないでください。通常、Tomcat のログレベルをいじる必要があるのは、セットアップまたは Tomcat 自体にバグがあると思われる場合だけです。

独自のアプリケーションの場合は、プロファイラーまたはストレス テストを使用してロギング コストを測定します。結果がどうであれ、実稼働環境では高いログレベル設定でアプリケーションを実行しないことをお勧めします。現在のプロジェクトでは、1 回あたり約 1 メガバイトのダンプが発生します。 リクエスト TRACE 設定では、INFO には 3 ~ 4 行しかなく、WARNING には何もありません (すべてがうまくいけば:-)。最も必要なログのみを記録することをお勧めします。アプリは実際には、起動、シャットダウン、失敗を報告するだけでよく、リクエストごとに最大 1 行で報告する必要があります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top