database/sql
に移動します データベースへの接続を無限に作成することを妨げることはありません。プールにアイドル状態の接続がある場合はそれが使用され、そうでない場合は新しい接続が作成されます。
したがって、負荷がかかっている場合、リクエストハンドラsql.DBはおそらくアイドル状態の接続を検出していないため、必要に応じて新しい接続が作成されます。これは少し混乱し、可能な場合はアイドル状態の接続を再利用し、必要な場合は新しい接続を作成し、最終的にDbの最大接続数に達します。また、残念ながら、Go 1.1には便利な方法がありません(例: SetMaxOpenConns )開いている接続を制限します。
Golangの新しいバージョンにアップグレードします。 Go 1.2+ SetMaxOpenConns を取得します 。そして、設定を開始するためのMySqlドキュメントをチェックしてください 次に調整します。
db.SetMaxOpenConns(100) //tune this
Go 1.1を使用する必要がある場合は、コードで*sql.DB
であることを確認する必要があります。 一度にN個のクライアントによってのみ使用されています。