的Grails /负载下休眠数据库崩溃:无法连接(即使池)
-
05-09-2019 - |
题
我有Grails中的应用程序。 我使用Hibernate访问(每标准Grails的规则)数据库 我使用MySQL和站点工作并且是稳定的(6个月)。
我做负载测试,最近发现,数据库拒绝时在负载下的连接。
使用MySQL服务器5,I可以看到螺纹连接左右徘徊20.以为之间跳跃11 - 30
mysql> show status like '%con%';
+--------------------------+-------+
| Variable_name | Value |
+--------------------------+-------+
| Aborted_connects | 72 |
| Connections | 65539 |
| Max_used_connections | 101 |
| Ssl_client_connects | 0 |
| Ssl_connect_renegotiates | 0 |
| Ssl_finished_connects | 0 |
| Threads_connected | 1 |
+--------------------------+-------+
7 rows in set (0.00 sec)
我的数据库配置是标准的。 (MySQL服务器安装在本地,未示出)
dataSource {
pooled = false
driverClassName = "com.mysql.jdbc.Driver"
username = "username"
password = "secret"
maxIdle = 15
maxActive = 100
}
我应该调查C3P0?或者我应该我maxActive拉契特高达1000和最好的希望?
解决方案
什么是错误的Grails报告时它不能获取数据库连接?暂停?拒绝?
当你运行你的测试,怎么装的箱子里吗? %的CPU,内存使用,等等。
这是可能的数据库被刚刚超载,结果Grails是超时得到连接。如果你想处理负载,你会想去池DB连接。无池,Grails将打开和关闭与每个请求一个DB连接。
其他提示
检查你的MySQL配置(/etc/mysql.conf或它的本地当量),特别是最大连接和每用户设置最大康恩;这听起来好像它可从MySQL和不Grails的到来。
不隶属于 StackOverflow