sql >> データベース >  >> RDS >> Mysql

Golang RESTful API負荷テストにより、データベース接続が多すぎます

    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個のクライアントによってのみ使用されています。



    1. SQLサーバーがこのエラーをスローするのはなぜですか:値NULLを列'id'に挿入できませんか?

    2. 便利なPHPデータベースクラス

    3. 同じ値を含む行の数を数える

    4. MySQLストアイメージBLOBの悪いプラクティスのパフォーマンス