Wie funktioniert Debug-Level (0-99) in der Tomcat server.xml Geschwindigkeit beeinflussen?

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

  •  01-07-2019
  •  | 
  •  

Frage

Die server.xml, die den Start von Apache Tomcat-Servlet-Container steuert enthält eine Debug-Attribut für nahezu jede wichtige Komponente. Das Debug-Attribut ist mehr oder weniger abhängig von der Anzahl ausführliche Sie es geben, Null ist mindestens 99 und am meisten ausführlich. Wie wirkt sich die Debug-Level Tomcat-Geschwindigkeit, wenn eine große Anzahl von Benutzern Service? Ich gehe davon aus Null schnell ist und 99 ist relativ langsamer, aber das ist wahr. Wenn es keine Fehler geworfen sind, ist es wichtig?

War es hilfreich?

Lösung

Umfangreiche Protokollierung nimmt eine erhebliche Menge an Zeit. Deshalb ist es so wichtig ist, zu setzen

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

so würde ich sagen, dass auf dem Produktionsserver seting verbose ernsthaft die Leistung auswirken würde. Ich gehe davon aus, es ist ein Produktionsserver Sie reden, da Sie sagen, es muss eine große Anzahl von Benutzern bedienen.

Andere Tipps

Die Protokollierung ist nicht nur verantwortlich Sie Fehler zu geben, sondern auch für die Verfolgung von dem, was vor sich geht. In einigen Fällen Code nicht in einem Debugger ausführen kann, Anmeldung ist Ihre einzige Option.

Aus diesem Grunde Protokollausgabe extrem umfangreich sein kann. Und I wirklich bedeutet das. Ich erinnere mich Einstellung Catalina loglevel einmal zurückzuverfolgen und mit einem mehrere Megabyte Logfile endete. Das war vor der Server überhaupt keine Treffer erhalten. Es war eine große Leistung Schwein. Zählbar in mehreren Sekunden.

Wenn Sie nicht brauchen, für Tomcat Anmeldung selbst, nicht aktivieren auf eine seiner Komponenten. Sie werden in der Regel wollen nur mit Tomcat loglevel herumzubasteln, wenn Sie einen Fehler in entweder Ihr Setup oder Tomcat selbst vermuten.

Für Ihre eigenen Anwendungen, messen Sie die Logging-Kosten einen Profiler oder nur einige Stresstests verwenden. Was auch immer Ihre Ergebnisse, würde ich empfehlen, gegen den Betrieb eine Anwendung mit einem hohen loglevel in einer Produktionsumgebung zu setzen. Mein aktuelles Projekt-Dumps über ein Megabyte pro Anfrage in TRACE Einstellung, nur etwa drei bis vier Linien auf INFO und nichts auf WARNUNG (iff alles gut geht :-). Ich empfehle nicht mehr als das Nötigste Protokollierung. Ihre Anwendung sollte wirklich nur berichten, Starten, Herunterfahren und Versagen und - höchstens -. Eine Zeile pro Anfrage

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top