【发布时间】:2016-08-30 13:33:47
【问题描述】:
我在我们的生产服务器中遇到了一些性能问题。
1) 主体查询通常需要 0.5 秒,但有时需要 20 秒,(然后客户端会发疯,因为它似乎崩溃了)。查询在一个视图上,它没有附加任何急切或惰性对象,只有普通属性。查询返回 100 条分页记录(超过 65.000 条记录)
为什么这么多变?我该如何改进查询,因为查询在大多数情况下都可以正常工作?
2) 通常,Javamelody 统计数据显示服务器同时使用 5 到 10 个连接。但有时这会上升到最大值 (100),然后服务器变得繁忙且不稳定。
我们有 1800 到 2000 个会话在使用该应用程序。
这是我的配置:
Tomcat 服务器: AWS Linux EC2 实例 t2.medium
MS SQL Server: AWS Windows EC2 Instance c4.large(它有一个 SQL Server Express,现在我们正在转向一个 SQL Server Web 版以获得更强大的功能[也许这是问题所在? ])
JDBC 连接池配置:
<bean class="org.apache.commons.dbcp2.BasicDataSource" id="dataSource">
<property name="url" value="jdbc:sqlserver://url..."/>
<property name="username" value="username..."/>
<property name="password" value="password..."/>
<property name="initialSize" value="10"/>
<property name="maxTotal" value="100"/>
<property name="maxIdle" value="50"/>
<property name="minIdle" value="10"/>
</bean>
我应该更改连接池配置吗?如何改善这些漏洞?
谢谢你,对不起我的英语。
【问题讨论】:
-
连续收集超过一天的等待统计数据,然后你就可以做一些分析了
标签: sql performance hibernate amazon-web-services tomcat