egg-sequelize连接池不能释放问题
egg项目使用egg-sequelize作为orm框架,该项目使用的mysql数据库和另外一个项目在一起,只是库不同而已,另外一个项目在做压力测试的时候将数据库cpu使用率提高到150%,持续时间挺长的。后来发现egg项目这边请求数据库老是超时,即使mysql数据库恢复正常之后,依然超时,重启egg项目之后才恢复正常,感觉就是连接池里的连接全部失效了而没有释放。想问问大家有没有遇到同样的问题,下面是错误信息和sequelize插件的配置:
2018-10-25 09:01:22,923 ERROR 15972 Fatal error: ResourceRequest timed out, ctx: {"request":{"method":"POST","url":"/dcc/v1/quota/get","header":{"host":"dccs.bw-xt.com","x-real-ip":"XXX","x-forwarded-for":"XXX","connection":"close","content-length":"176","user-agent":"Needs Clouds Client 5.0","accept":"*/*","content-type":"application/json;charset=utf-8"}},"response":{"status":404,"message":"Not Found","header":{"vary":"Origin"}},"app":{"env":"prod","name":"needs_dccs","baseDir":"/srv/www/vhosts/Needs_Dccs","subdomainOffset":2,"config":"<egg config>","controller":"<egg controller>","httpclient":"<egg httpclient>","loggers":"<egg loggers>","middlewares":"<egg middlewares>","router":"<egg router>","serviceClasses":"<egg serviceClasses>"},"originalUrl":"/dcc/v1/quota/get","req":"<original node req>","res":"<original node res>","socket":"<original node socket>"}
2018-10-25 09:01:31,620 ERROR 15996 [-/127.0.0.1/-/30005ms POST /dcc/v1/quota/get] nodejs.TimeoutError: ResourceRequest timed out
at ResourceRequest._fireTimeout (/srv/www/vhosts/Needs_Dccs/node_modules/generic-pool/lib/ResourceRequest.js:62:17)
at Timeout.bound (/srv/www/vhosts/Needs_Dccs/node_modules/generic-pool/lib/ResourceRequest.js:8:15)
at ontimeout (timers.js:427:11)
at tryOnTimeout (timers.js:289:5)
at listOnTimeout (timers.js:252:5)
at Timer.processTimers (timers.js:212:10)
name: "TimeoutError"
sequelize: {
dialect: 'mysql',
database: 'database',
username: 'root',
password: 'password',
timezone: '+08:00',
host: '127.0.0.1',
port: '3306',
loggerLevel: 'debug',
dialectOptions: {
supportBigNumbers: true,
bigNumberStrings: true
},
define: {
freezeTableName: true,
charset: 'utf8',
dialectOptions: {
collate: 'utf8_general_ci'
},
timestamps: false
},
pool: {
max: 5,
min: 0,
acquire: 30000,
idle: 10000
}
},