首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Node-mysql陈旧连接

Node-mysql陈旧连接
EN

Stack Overflow用户
提问于 2016-12-19 18:07:57
回答 0查看 258关注 0票数 0

我有一个node-mysql应用程序,mysql-pool设置为:

代码语言:javascript
复制
var db = db.createPool({
    host     : (process.env.NODE_ENV == "development") ? config.db.dev.host : config.db.prod.host,
    user     : (process.env.NODE_ENV == "development") ? config.db.dev.uname : config.db.prod.uname,
    password : (process.env.NODE_ENV == "development") ? config.db.dev.passwd : config.db.prod.passwd,
    database : (process.env.NODE_ENV == "development") ? config.db.dev.dbname : config.db.prod.dbname,
    port     : (process.env.NODE_ENV == "development") ? config.db.dev.port : config.db.prod.port,
    connectionLimit    : 100,
    multipleStatements : true,
  acquireTimeout     : 10000,
});

经过几天的活动后,我的应用程序开始积累陈旧的连接,我使用以下命令检查了mysql中不存在threadId

代码语言:javascript
复制
show processlist

我在每个查询完成执行后使用connection.release()。我每天会收到大约50000个API调用。

每当我使用mysql连接时,我记录了池的属性,pool._allConnections.length逐渐增加,直到最大限制(在我的情况下是100),然后应用程序将挂起任何使用mysql连接的API调用,返回502 Bad Gateway error。在此之后,db.getConnection()甚至不会抛出任何错误。

MySql @@global.wait_timeout设置为300。

我在同一个应用程序中也使用了套接字和redis,即使在mysql API停止响应后,它们仍然可以正常工作。

有人能分享一下这方面的见解吗?提前谢谢。

EN

回答

页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41220132

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档