我想在访问不同页面的会话负载较高的情况下测试我的J2EE应用程序。
这个web应用程序使用Log4J记录大量错误、警告和信息。我想测试这个负载对写入日志文件的副作用是什么,特别是并发I/O写入操作。
我发现了Log4j deadlock under high load conditions。
问题是,OS (linux)是否对并发I/O文件写入有任何限制,或者Log4j是否处理这种并发性?
我如何监控任何I/O进程延迟(因为高负载)或任何死锁的发生?
谢谢
发布于 2015-06-20 13:56:29
因为没人回答我的问题,
这个link以某种方式帮助我解决了我的问题。
Log4j串行写入文件和控制台。因此,当一个线程正在编写另一个线程时,想要写入的线程必须等待另一个线程完成。另外,如果附加在另一端的任何东西没有排水,stdout就会阻塞。
在unix中有一个特殊的文件描述符,名为stdout。在控制台中启动应用程序时,stdout将附加到控制台。您还可以将stdout重定向到其他文件。ex: java Blah > /dev/null。有可能是stdout指向正在填充的文件。例如,管道是一个文件,如果另一端的程序没有排出管道,那么写入管道的程序最终会阻塞。
https://stackoverflow.com/questions/30829003
复制相似问题