第一部分:背景
<o:p></o:p>
硬件: CPU p4 3.0
内存: 1 GB
<o:p> </o:p>
操作系统: Windows2003
上面跑着 Oracle <st1:chmetcnv tcsc="0" w:st="on" unitname="g" sourcevalue="10" numbertype="1" negative="False" hasspace="False">10g</st1:chmetcnv> 和 测试的 Web 应用
<o:p> </o:p>
开发框架: SpringSide <st1:chmetcnv tcsc="0" w:st="on" unitname="m3" sourcevalue="1" numbertype="1" negative="False" hasspace="True">1.0 M3</st1:chmetcnv> 的改造版,把 Web 换成 JSF<st1:chsdate w:st="on" isrocdate="False" year="1899" day="30" islunardate="False" month="12">1.1.3</st1:chsdate> , Spring 升级到 2.0.
<o:p> </o:p>
Web Server: Tomcat<st1:chsdate w:st="on" isrocdate="False" year="1899" day="30" islunardate="False" month="12">5.5.17</st1:chsdate> , Apache2.0
<o:p> </o:p>
第二部分:测试对象
<o:p> </o:p>
用 JMeter 测试一个有 500+ 条记录的表,每次查询都全部查询出来。最后在页面上显示 100 条。
<v:shapetype id="_x0000_t75" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" filled="f" stroked="f" coordsize="21600,21600" o:spt="75"><v:stroke joinstyle="miter"></v:stroke><v:formulas><v:f eqn="if lineDrawn pixelLineWidth 0"></v:f><v:f eqn="sum @0 1 0"></v:f><v:f eqn="sum 0 0 @1"></v:f><v:f eqn="prod @2 1 2"></v:f><v:f eqn="prod @3 21600 pixelWidth"></v:f><v:f eqn="prod @3 21600 pixelHeight"></v:f><v:f eqn="sum @0 0 1"></v:f><v:f eqn="prod @6 1 2"></v:f><v:f eqn="prod @7 21600 pixelWidth"></v:f><v:f eqn="sum @8 21600 0"></v:f><v:f eqn="prod @7 21600 pixelHeight"></v:f><v:f eqn="sum @10 21600 0"></v:f></v:formulas><v:path o:connecttype="rect" o:extrusionok="f" gradientshapeok="t"></v:path><o:lock aspectratio="t" v:ext="edit"></o:lock></v:shapetype>
<o:p> </o:p>
测试要求: 10 个并发用户,共访问 200 次
<o:p> </o:p>
<o:p> </o:p>
第三部分:测试结果
<o:p> </o:p>
0, 未启动 Tomcat 时,内存情况:
<o:p> </o:p>
<o:p> </o:p>
1 ,单个 Tomcat ,默认设置,测试结果:
<o:p> </o:p>
2 ,单个 Tomcat, 把 catalina.bat 的 Xms 和 Xmx 的值设为 768 时测试结果:
内存情况:
<o:p> </o:p>
3 ,单个 Tomcat, 设置了 Xms 和 Xmx ,并启用了 APR, 测试结果
内存情况:
<o:p> </o:p>
<o:p> </o:p>
<o:p> </o:p>
4 , Apache2 分发请求, 2 个 Tomcat 负载均衡,每个 Tomcat 的 Xms 和 Xmx 都设置 <st1:chmetcnv tcsc="0" w:st="on" unitname="m" sourcevalue="384" numbertype="1" negative="False" hasspace="False">384M </st1:chmetcnv>内存,任何请求全部由 Tomcat 处理。测试结果:
内存情况:
<o:p> </o:p>
5 ,在测试 4 的情况下,起用 APR, 测试结果:
内存情况:
<o:p> </o:p>
<o:p> </o:p>
第四部分,结论: APR 和 Apache2 分发方式的负载均衡,只能选一种,否则性能比较遭。 <o:p> </o:p>
<o:p> </o:p>
<o:p> </o:p>
<o:p> </o:p>
<o:p> </o:p>