2015-06-14 19 views
6

Voglio testare la mia applicazione J2EE sotto carico elevato di sessioni che accedono a pagine diverse.monitor log4j comportamento sotto carico

Questa applicazione Web utilizza Log4J per registrare numerosi errori, avvisi e informazioni. Voglio testare qual è l'effetto collaterale di questo carico sulla scrittura di file di registro, in particolare le azioni di scrittura I/O simultanee.

Ho trovato che Log4j deadlock under high load conditions.

La domanda è se OS (linux) ha qualche limitazione sulla scrittura di file I/O simultanei o Log4j gestisce questa concorrenza?

Come è possibile monitorare i ritardi dei processi I/O (a causa di un carico elevato) o si verifica un deadlock?

Grazie

risposta

2

Come nessuno ha risposto alla mia domanda,

Questo link qualche modo mi aiutano attraverso la risoluzione il mio problema.

Log4j scrive in file e nella console in modo seriale. così mentre un thread sta scrivendo un altro thread che vuole scrivere deve aspettare fino a quando l'altro è finito. inoltre, lo stdout può bloccare se qualsiasi cosa vi è collegata dall'altra parte non lo esaurisce.

in unix esiste un descrittore di file speciale denominato stdout. quando avvii le applicazioni nella console, stdout verrà collegato alla console. puoi anche reindirizzare stdout in altri file. ex: java Blah > /dev/null. è probabile che hai stdout che punta a un file che si sta riempiendo. per esempio un pipe è un file e se il programma all'altra estremità non sta svuotando la pipe, il programma che sta scrivendo alla pipe alla fine si bloccherà.