Elasticbeanstalk tomcat 性能波动
Elasticbeanstalk tomcat performance fluctuation
我们有一个应用程序部署到 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
引起的
这个问题不是由 JDBCStore 引起的。它实际上是由用于 AWS 中 VPC 的 NAT 延迟引起的。对此进行更改已解决问题。
NAT 更改
我们创建了一个新的子网 10.0.5.0,并为其分配了一个专用 NAT,其路由路径仅适用于该子网。我们还从使用 PV 虚拟服务器切换到 HVM 虚拟服务器,并在网卡上禁用分散收集。
我们有一个应用程序部署到 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
引起的这个问题不是由 JDBCStore 引起的。它实际上是由用于 AWS 中 VPC 的 NAT 延迟引起的。对此进行更改已解决问题。
NAT 更改 我们创建了一个新的子网 10.0.5.0,并为其分配了一个专用 NAT,其路由路径仅适用于该子网。我们还从使用 PV 虚拟服务器切换到 HVM 虚拟服务器,并在网卡上禁用分散收集。