我有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的到来。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top