我们有一个应用程序部署到Tomcat 7 elasticbeanstalk(我们也尝试过tomcat 8)。当我们配置应用程序使用JDBCStore备份会话(RDS)时,我们会看到负载测试期间的性能波动,当JDBCStore被删除时会消失。
这是使用JDBCStore时来自ELB(负载均衡器)的请求图表
这是在不使用JDBCStore时使用相同基础结构的请求计数图。
我们设置了以下JVM选项(我们已经测试了删除部分或全部选项)。
-Xmx1024m -Xms1024m -Djava.awt.headless=true -Duser.timezone=Europe/Dublin -XX:ReservedCodeCacheSize=256m -XX:+UseConcMarkSweepGC -XX:+CMSIncrementalMode -Dorg.apache.catalina.session.StandardSession.ACTIVITY_CHECK=true
为什么在引入JDBCStore时性能会在负载下遭受如此大的影响?
修改
此问题是由我们的VPC中的NAT和JDBCStore的不引起的
答案 0 :(得分:0)
此问题不是由JDBCStore引起的。事实上,它是由AWS中用于我们的VPC的NAT的延迟引起的。对此进行更改已解决了这个问题。
NAT更改 我们创建了一个新子网10.0.5.0,并为其分配了一个专用NAT,仅包含该子网的路由路径。我们还从使用PV虚拟服务器切换到HVM虚拟服务器,并禁用网卡上的分散 - 聚集。