Hi<div><br></div><div>We use logback for debug log, and find it has performance problem.</div><div>Here is the environment and traffic information:</div><div>Config:</div><div><ul><li><span style="background-color:rgb(255,255,255);color:rgb(51,51,51);font-family:Verdana,Arial,SunSans-Regular,sans-serif;line-height:20px">RollingFileAppender</span><br>
</li><li><span style="background-color:rgb(255,255,255);color:rgb(51,51,51);font-family:Verdana,Arial,SunSans-Regular,sans-serif;line-height:20px">Default encoder</span></li></ul><font color="#333333" face="Verdana, Arial, SunSans-Regular, sans-serif"><span style="line-height:20px">Traffic</span></font></div>
<div><ul><li><font color="#333333" face="Verdana, Arial, SunSans-Regular, sans-serif"><span style="line-height:20px">60~100 concurrent threads write debug log parallel</span></font></li><li><font color="#333333" face="Verdana, Arial, SunSans-Regular, sans-serif"><span style="line-height:20px">each time, the logback will record a short message (eg, trace information, method in/out)</span></font></li>
<li><font color="#333333" face="Verdana, Arial, SunSans-Regular, sans-serif"><span style="line-height:20px">several hundreds record per thread per seconds, which means several ten thousand records per second total in one JVM.</span></font></li>
<li><font color="#333333" face="Verdana, Arial, SunSans-Regular, sans-serif"><span style="line-height:20px">Compress log every 20M</span></font></li></ul><div><font color="#333333" face="Verdana, Arial, SunSans-Regular, sans-serif"><span style="line-height:20px">After running our application, we found the performance is poor, and IO, CPU is not the bottle neck, but check the stack, all threads is waiting on the </span></font><strong class="final-path" style="background-color:rgb(255,255,255);margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;font:inherit;font-weight:bold;font-family:Helvetica,arial,freesans,clean,sans-serif;line-height:25px">OutputStreamAppender.</strong><span style="background-color:rgb(255,255,255);color:rgb(153,0,0);font-family:'Bitstream Vera Sans Mono','Courier New',monospace;font-size:12px;font-weight:bold;line-height:16px;white-space:pre">subAppend().</span></div>
</div><div><span style="background-color:rgb(255,255,255);color:rgb(153,0,0);font-family:'Bitstream Vera Sans Mono','Courier New',monospace;font-size:12px;font-weight:bold;line-height:16px;white-space:pre"><br>
</span></div><div><span style="background-color:rgb(255,255,255)"><font face="'Bitstream Vera Sans Mono', 'Courier New', monospace"><span style="font-size:12px;line-height:16px;white-space:pre"><b>Linux 2.6.32.27-0.2.2.2501.1.PTF-default     03/14/12        _x86_64_<font color="#990000"><br>
</font></b></span></font></span></div><div><span style="background-color:rgb(255,255,255)"><font face="'Bitstream Vera Sans Mono', 'Courier New', monospace"><span style="font-size:12px;line-height:16px;white-space:pre"><b>avg-cpu:  %user   %nice %system %iowait  %steal   %idle
          12.82    0.00    2.20    0.43    0.00   84.55

Device:         rrqm/s   wrqm/s     r/s     w/s   rsec/s   wsec/s avgrq-sz avgqu-sz   await  svctm  %util
sda               0.00   415.50    0.00    9.50     0.00  3400.00   357.89     0.27   28.21   7.37   7.00<font color="#990000"><br></font></b></span></font></span></div><div><span style="background-color:rgb(255,255,255);color:rgb(153,0,0);font-family:'Bitstream Vera Sans Mono','Courier New',monospace;font-size:12px;font-weight:bold;line-height:16px;white-space:pre"><br>
</span></div><div><span style="background-color:rgb(255,255,255);font-family:'Bitstream Vera Sans Mono','Courier New',monospace;font-size:12px;line-height:16px;white-space:pre">I searched, and find some previous discuss (</span><a href="http://mailman.qos.ch/pipermail/logback-user/2011-March/002211.html">http://mailman.qos.ch/pipermail/logback-user/2011-March/002211.html</a>) and it is same situation we have here, and the suggestion is to "vote back" the "<span style="background-color:rgb(255,255,255);font-family:Arial,sans-serif;line-height:20px">ImmediateFlush" and "BufferSize".</span></div>
<div><span style="background-color:rgb(255,255,255);font-family:Arial,sans-serif;line-height:20px"><br></span></div><div><span style="background-color:rgb(255,255,255);font-family:Arial,sans-serif;line-height:20px">So I wonder if it is a performance problem? or Configuration fault?</span></div>
<div><font face="Arial, sans-serif"><span style="line-height:20px"><br></span></font></div><div><font face="Arial, sans-serif"><span style="line-height:20px">When I check the IO stat, I notice the io package is small, and it is same as the behavior in OutputStreamAppender.</span></font></div>
<div><font face="Arial, sans-serif"><span style="line-height:20px"><br></span></font></div><div><font face="Arial, sans-serif"><span style="line-height:20px">So if it is the existed problem or limitation, can we have the flush control and buffer size configuration back?</span></font></div>
<div><font face="Arial, sans-serif"><span style="line-height:20px"><br></span></font></div><div><font face="Arial, sans-serif"><span style="line-height:20px">Although we try to have the socketAppender and have our owner buffer solution when writer to file, but we need to find out what's the real problem.</span></font></div>
<div><font face="Arial, sans-serif"><span style="line-height:20px"><br></span></font></div><div><font face="Arial, sans-serif"><span style="line-height:20px">BRs</span></font></div><div><font face="Arial, sans-serif"><span style="line-height:20px">//Jason</span></font></div>