2009-02-20 4 views
5

Grailsにアプリケーションがあります。 私はデータベースにアクセスするためにHibernateを使用しています(標準のgrailsルールに従って) 私はMySqlを使用していますが、サイトは動作し、安定しています(6ヶ月間)。Grails/Hibernateデータベースがクラッシュしてロードされました:接続できません(プーリング時でも)

私は負荷テストを行っていますが、負荷がかかっているときにデータベースが接続を拒否していることが最近発見されました。 MySQLサーバ5を使用して

、私はスレッドが11の間、私はジャンプの周りに20思想ホバリング接続見ることができます - 私のデータベース構成が標準です

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) 

30。 (MySqlサーバーは、ローカルにインストールされていますが、図示されていません)

dataSource { 
    pooled = false 
    driverClassName = "com.mysql.jdbc.Driver" 
    username = "username" 
    password = "secret" 

    maxIdle = 15 
    maxActive = 100   
} 

私はC3P0を調べる必要がありますか?または、私はmaxActiveを1000に上げて、ベストを願っていますか?

答えて

4

Grailsがデータベース接続を確立できない場合、どのようなエラーが報告されますか?タイムアウト?拒否?

テストを実行すると、ボックスはどのようにロードされますか? %CPU、メモリ使用率など

データベースが過負荷になっている可能性があります.Grailsが接続をタイムアウトしている可能性があります。負荷を処理したい場合は、プールされたDB接続に行きたいと思うでしょう。プーリングすることなく、GrailsはリクエストごとにDB接続を開き、閉じます。

+0

プーリングとMySQLの接続制限が答えたようです。 – user57660

0

mysqlの設定(/etc/mysql.confまたはそれに相当するもの)、特にユーザごとの最大接続数と最大接続数を確認してください。これはmysqlから来てgrailsではないかのように聞こえます。

関連する問題