私は毎分0〜3000リクエスト(不規則、パターンなし)からのリクエストを受け取るnodeJsアプリケーションを持っています。リクエストの約80%〜90%がmysqlの挿入操作または更新操作を引き起こします。可能性のある理由は、nodejsのmysqlキュー制限の到達問題を引き起こす可能性があります
ノードのバージョン - 使用nodejsフレームワークは、私は接続を取得していますRestify
でreadlineの6.2
を使用して、Debian-のlinux-gnuのための14.14按分5.5.44、(x86_64版) - 4.2.2
MySQLバージョンサイズのmysql接続プールから。
私は時間(散発的) "mysqlキューの限界に達した"問題を参照してください。何が、おそらく、この問題を引き起こす可能性があります?(別に以下の原因から)
- 接続が適切に閉じられていない
- キューのサイズが十分ではありません(私は、最適なキューのサイズを決定するにはどうすればよい?)nodejsと
- 問題
- mysqlクエリの問題(この問題に関するクエリには、どのような問題がありますか?)
- ノードjsフレームワークを使用したProbelmを使用する(expressJsを使用すると解決しますかこれ?)
EDIT1 ここでは、私は
connectionPool.getConnection(function (err, conn) {
if (err) {
return callback(err);
} else {
let args = [param1, param2];
let query = "SELECT...";
conn.query(query, args, function (err, rows) {
conn.release();
if (err) {
return callback(err);
} else {
return callback(null, rows);
}
});
}
});
データベースを照会しているかのフレームであるEDIT2 ここで私は今のところ持っているMySQLの設定です。私はこれらの値についてほとんど考えていません。彼らは大丈夫ですか?
{
"connectionLimit": 10,
"acquireTimeout": 60000,
"host": "*****",
"port": "3306",
"user": "*****",
"password": "****",
"database": "*****",
"charset": "UTF8_GENERAL_CI",
"debug": false,
"waitForConnections" : true,
"queueLimit" : 15000
}
nodeでmysqlに接続するためにどのフレームワークを使用していますか?接続が多すぎると、別のエラーが発生する可能性があります。キューのサイズは、mysqlに接続するためのnodejsフレームワークの構造であると思われます。間違っていないと、ここに問題がある可能性があります。私は非常にノードまたはmysqlがこの問題の理由だと疑っています。 –
私はdbに接続するためにmysql nodejsドライバを使用しています。それは最も安定した人気のあるドライバと思われた https://www.npmjs.com/package/mysql –
そして、キューサイズはドライバのコンストラクタであり、nodejsコードで行われました –