好吧,我们正在使用nodejs v10.13.0
及其sequelize 4.42.0
与我们的postgres 9.2
银行进行通信,我们的服务器处于AZURE状态,它具有8GB的HAM,2个CPU和CentOS 7在银行中,我们正在使用2 schemas
方法,并且实际上还会使用更多方法,我们认为这可能是一个问题,但是我们不确定。因此,有时会出现一些连接问题,有些时候querys
到sequelize
会在日志中报告错误。
(节点:22240)UnhandledPromiseRejection警告:SequelizeDatabaseError:读取ECONNRESET warning.js:18 在Query.formatError(c:\ Users \ ax10415 \ projetos \ aperam.mes.tubos \ node_modules \ sequelize \ lib \ dialects \ postgres \ query.js:363:16) 在query.catch.err(c:\ Users \ ax10415 \ projetos \ aperam.mes.tubos \ node_modules \ sequelize \ lib \ dialects \ postgres \ query.js:86:18) 在tryCatcher(c:\ Users \ ax10415 \ projetos \ aperam.mes.tubos \ node_modules \ bluebird \ js \ release \ util.js:16:23) 在Promise._settlePromiseFromHandler(c:\ Users \ ax10415 \ projetos \ aperam.mes.tubos \ node_modules \ bluebird \ js \ release \ promise.js:512:31) 在Promise._settlePromise(c:\ Users \ ax10415 \ projetos \ aperam.mes.tubos \ node_modules \ bluebird \ js \ release \ promise.js:569:18) 在Promise._settlePromise0(c:\ Users \ ax10415 \ projetos \ aperam.mes.tubos \ node_modules \ bluebird \ js \ release \ promise.js:614:10) 在Promise._settlePromises(c:\ Users \ ax10415 \ projetos \ aperam.mes.tubos \ node_modules \ bluebird \ js \ release \ promise.js:690:18) 在_drainQueueStep(c:\ Users \ ax10415 \ projetos \ aperam.mes.tubos \ node_modules \ bluebird \ js \ release \ async.js:138:12) 在_drainQueue(c:\ Users \ ax10415 \ projetos \ aperam.mes.tubos \ node_modules \ bluebird \ js \ release \ async.js:131:9) 在Async._drainQueues(c:\ Users \ ax10415 \ projetos \ aperam.mes.tubos \ node_modules \ bluebird \ js \ release \ async.js:147:5) 在Instant.Async.drainQueues处[作为_onImmediate](c:\ Users \ ax10415 \ projetos \ aperam.mes.tubos \ node_modules \ bluebird \ js \ release \ async.js:17:14) 在runCallback(timers.js:705:18) 在tryOnImmediate(timers.js:676:5) 在processImmediate(timers.js:658:5) (节点:22240)UnhandledPromiseRejectionWarning:未处理的承诺拒绝。引发此错误的原因可能是抛出了一个没有catch块的异步函数,或者是拒绝了一个.catch()无法处理的承诺。 (拒绝ID:10)
我们已经尝试根据站点PGTune
对配置文件进行一些更新。# DB Version: 9.2
# OS Type: linux
# DB Type: web
# Total Memory (RAM): 8 GB
# CPUs num: 2
# Data Storage: ssd
max_connections = 200
shared_buffers = 2GB
effective_cache_size = 6GB
maintenance_work_mem = 512MB
checkpoint_completion_target = 0.7
wal_buffers = 16MB
default_statistics_target = 100
random_page_cost = 1.1
effective_io_concurrency = 200
work_mem = 10485kB
checkpoint_segments = 32
进行这些设置时,第一个有趣的问题发生了,他抱怨kernel shmmax
的研究发现PGTune
本身告诉我们需要更改,然后将更改应用于{{1} }文件,添加以下行
/etc/sysctl.conf
我们还尝试将服务器的容量从4GB增加到8GB,但也没有成功。无论如何,我们不了解问题出在哪里,错误消息仍不清楚(至少对我而言)。