Apache Tomcatのサーブレットコンテナの起動を制御するserver.xmlには、ほぼすべての主要コンポーネントのデバッグ属性が含まれています。デバッグ属性は、指定した番号に応じて多かれ少なかれ冗長になります。最小値は0、最も冗長値は99です。多数のユーザーにサービスを提供するとき、デバッグレベルはTomcatの速度にどのように影響しますか?私はゼロが速く、99が比較的遅いと考えますが、これは本当です。エラーがスローされていない場合は重要ですか?Tomcat server.xmlのデバッグレベル(0〜99)はどのように速度に影響しますか?
4
A
答えて
2
大量のログにはかなりの時間がかかります。これが重要な理由です。
if (log.isDebugEnabled())
log.debug(bla_bla_bla);
プロダクションサーバを冗長に設定すると、パフォーマンスに重大な影響を与えることになります。私はあなたが大量のユーザーにサービスを提供しなければならないと言って以来、あなたが話しているプロダクションサーバーだと思います。
2
ロギングは、エラーの原因であるだけでなく、発生していることの追跡にも役立ちます。場合によっては、デバッガ内でコードを実行することはできません。ロギングは唯一のオプションです。
これは、ログ出力が非常に冗長になる可能性があるためです。そして私は本当にの意味を意味します。私はカタリナのログレベルをTRACEに設定したことを覚えていて、数メガバイトのログファイルで終わった。それはの前にあって、サーバはヒットをまったく受け取りませんでした。それは巨大なパフォーマンスの豚でした。数秒でカウント可能。
Tomcat自体のログを必要としない場合は、いずれのコンポーネントでもログオンしないでください。設定やTomcat自体にバグがあると思われる場合は、通常はTomcatのログレベルを調整するだけです。
プロファイラを使用してロギングコストを測定するか、ストレステストを行うだけで、ロギングコストを測定できます。結果が何であれ、プロダクション環境で高いログレベル設定のアプリケーションを実行することをお勧めします。私の現在のプロジェクトでは、の要求でのTRACE設定で1メガバイト、INFOの場合は3〜4行しかなく、WARNINGでは何も書かれていません。私は最も必要なロギング以上を推奨しません。あなたのアプリは実際には、スタートアップ、シャットダウン、失敗、そしてリクエストごとに最大で1行しか報告しません。
関連する問題
- 1. ページ上のHTMLの量は速度に影響しますか?
- 2. ファイルサイズはvbaの実行速度に影響しますか?
- 3. 大きなXMLファイルは速度に影響しますか?
- 4. コンパイラの最適化はデータの読み込み速度にどのように影響しますか?
- 5. CSSの不透明度はアクセシビリティにどのように影響しますか?
- 6. JVMの割当て速度が高いほどパフォーマンスに影響しますか?どのように-Xmx32mと
- 7. reduceByKeyのnumPartitionsは速度に影響しません
- 8. java stream.peek()はどのようにバイトコードに影響しますか?
- 9. estimatedRowHeightはどのようにパフォーマンスに影響しますか?
- 10. Object.observe()はどのようにパフォーマンスに影響しますか?
- 11. innodb_log_file_sizeはどのようにパフォーマンスに影響しますか?
- 12. カスタムモデルバインダーはテストにどのように影響しますか?
- 13. アプリケーションサイズは起動速度とメモリサイズに影響します
- 14. Socket_select:入力には影響しますが、正確にはどのように影響しますか?
- 15. where節の条件の順序はクエリの速度に影響しますか?
- 16. グラフアイテムのレイアウトにどのように影響しますか?
- 17. ポップオーバーの回数はページの読み込み速度に影響しますか?
- 18. MQTTブローカの位置はメッセージの配信速度に影響しますか?
- 19. Pythonの対数計算の基礎は速度に影響しますか?
- 20. コードのダウンロード速度への影響
- 21. DLLの実行速度への影響
- 22. ファイルサイズがパフォーマンスにどのように影響しますか?
- 23. Twilio:市外局番はSMSの配信速度に影響しますか?
- 24. Cの静的ローカル変数は実行速度に影響しますか?
- 25. インジェクタブルは角度2のパフォーマンスにどのように影響するか
- 26. ネイティブコールが多すぎると速度に影響しません
- 27. データベースにはどのような影響がありますか?
- 28. 悪影響がgensimでのモデルのパフォーマンスにどのように影響しますか?
- 29. デバッグレベル0のCakeEmail
- 30. 前のフローティングボックスは、次のフローティングボックスにどのように影響しますか?
さて、率直に言って、 isDebugEnabled()が必要なのは、ロギングデータが非常に重いか構築が難しいかどうかをチェックするだけです。ロガーのdebug()またはwarn()、あるいは、それらが適切かどうかをチェックし、あまりにもオーバーヘッドなしに即座に終了するために、通常は効率的に実装されるメソッドです。 –