数据库连接(暂时写在app.js)
var options = {
server: {
poolSize: 100,
auto_reconnect: true,
keepAlive: 10
}
}
var db = mongoose.connect(settings.MONGODB_URL,options);
问题:
1.批量插入数据,一段时间后就会出现:
MongoError: connection 95 to xxx.xxx.xxx timed out
2.当出现上面错误的时候,所有相关的数据库操作就不运行了,是程序与数据库的连接断了吗? 是数据库连接设置的不对,还是可能是数据库的问题?
3.当我进行高并发的ab测试后,也会出现上面2的现象,是什么原因呢?是连接池相关设置的不正确吗?
우선 연결 풀 문제에 주의하세요.
mongoose.connect
은 한 번만 호출해야 합니다. 반환된 개체는 연결 풀을 유지하므로 계속해서 연결이 열리고 닫히므로 성능에 큰 영향을 미칩니다.확인 후에는 얼마나 많은 압력을 가했는지, 사용 가능한 모든 리소스를 점유했는지 확인해야 합니다. mongodb 로그를 보면 동시에 열려 있는 연결 수를 확인할 수 있습니다. 머신의 남은 리소스도 확인할 수 있습니다.