Domanda

Il server.xml che controlla l'avvio del contenitore servlet di Apache Tomcat contiene un attributo di debug per quasi tutti i componenti principali. L'attributo debug è più o meno dettagliato a seconda del numero che gli dai, zero è il minimo e 99 è il più prolisso. In che modo il livello di debug influisce sulla velocità di Tomcat durante la manutenzione di un numero elevato di utenti? Presumo che zero sia veloce e 99 sia relativamente più lento, ma è vero. Se non vengono generati errori, importa?

È stato utile?

Soluzione

La registrazione estesa richiede molto tempo. Questo è il motivo per cui è così importante mettere

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

quindi direi che impostare il proprio server di produzione in modo dettagliato influirebbe seriamente sulle prestazioni. Suppongo sia un server di produzione di cui stai parlando poiché dici che deve servire un gran numero di utenti.

Altri suggerimenti

La registrazione non è solo responsabile di errori, ma anche di tracciamento di ciò che sta accadendo. In alcuni casi, il codice non può essere eseguito all'interno di un debugger, quindi la registrazione è l'unica opzione.

Ecco perché l'output della registrazione può essere estremamente dettagliato. E davvero intendo quello. Ricordo di aver impostato il loglevel di Catalina su TRACE una volta e ho finito con un file di log di diversi megabyte. Era prima che il server ricevesse alcun hit. E 'stato un grande spettacolo. Contabile in diversi secondi.

Se non è necessario il log per Tomcat stesso, non attivarlo su nessuno dei suoi componenti. In genere vorrai armeggiare con il livello Google di Tomcat se sospetti un bug nella tua configurazione o in Tomcat stesso.

Per le tue applicazioni, misura i costi di registrazione usando un profiler o solo alcuni stress test. Qualunque sia il risultato, sconsiglio di eseguire un'applicazione con un'impostazione di livello elevato in un ambiente di produzione. Il mio progetto attuale esegue il dump di circa un megabyte per richiesta con l'impostazione TRACE, solo circa 3-4 righe su INFO e niente su ATTENZIONE (se tutto va bene :-). Raccomando non più della registrazione più necessaria. La tua app dovrebbe semplicemente segnalare l'avvio, l'arresto e l'errore e, al massimo, una riga per richiesta.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top