监视负载下的log4j行为

时间:2015-06-14 11:50:28

标签: logging concurrency io log4j

我想在访问不同页面的高负载会话下测试我的J2EE应用程序。

此Web应用程序使用Log4J记录大量错误,警告和信息。 我想测试这个加载对写日志文件的副作用是什么,特别是并发I / O写操作。

我发现Log4j deadlock under high load conditions

问题是OS(linux)对并发I / O文件写入有任何限制吗?Log4j是否处理这种并发?

如何监控任何I / O进程延迟(由于高负载)或发生任何死锁?

由于

1 个答案:

答案 0 :(得分:3)

由于没有人回答我的问题,

link以某种方式帮助我解决了我的问题。

Log4j按顺序写入文件和控制台。所以当一个线程正在写另一个想要写的线程时,必须等到另一个线程完成。另外,如果另一端附着的东西没有耗尽它,stdout可能会阻塞它。

<\ n>在unix中有一个名为stdout的特殊文件描述符。当您在控制台中启动应用程序stdout时,将附加到控制台。您还可以将stdout重定向到其他文件。 ex: java Blah > /dev/null。您有stdout指向正在填满的文件的可能性。例如,管道是一个文件,如果另一端的程序没有排空管道,那么写入管道的程序最终会阻塞。