我想在访问不同页面的高负载会话下测试我的J2EE应用程序。
此Web应用程序使用Log4J记录大量错误,警告和信息。 我想测试这个加载对写日志文件的副作用是什么,特别是并发I / O写操作。
我发现Log4j deadlock under high load conditions。
问题是OS(linux)对并发I / O文件写入有任何限制吗?Log4j是否处理这种并发?
如何监控任何I / O进程延迟(由于高负载)或发生任何死锁?
由于
答案 0 :(得分:3)
由于没有人回答我的问题,
这link以某种方式帮助我解决了我的问题。
Log4j按顺序写入文件和控制台。所以当一个线程正在写另一个想要写的线程时,必须等到另一个线程完成。另外,如果另一端附着的东西没有耗尽它,stdout可能会阻塞它。
<\ n>在unix中有一个名为stdout
的特殊文件描述符。当您在控制台中启动应用程序stdout
时,将附加到控制台。您还可以将stdout
重定向到其他文件。 ex: java Blah > /dev/null
。您有stdout
指向正在填满的文件的可能性。例如,管道是一个文件,如果另一端的程序没有排空管道,那么写入管道的程序最终会阻塞。