【发布时间】:2021-01-25 03:25:01
【问题描述】:
我使用 node-oracledb 实现了一个连接池 (poolMin=poolMax=10),我看到了高达 100 倍的差异,尤其是在像 10 个这样的少数用户的情况下。真的令人印象深刻。我还增加了 UV_THREADPOOL_SIZE,比如 4 + poolMax。在这一点上,我无法理解一些事情。
process.env.UV_THREADPOOL_SIZE = 4 + config.pool.poolMax // Default + Max
NodeJs 作为单线程工作(另外还有 4 个线程,它们都不用于网络 I/O)。那么当我使用一个有 10 个连接的池时,单线程可以使用所有这些连接吗?或者不再是具有这些设置的单线程?因为我在 UV_THREADPOOL_SIZE 中增加了 10 个。我将感谢任何解释此问题的人。
顺便说一句,我想知道使用像 10 这样的固定数字池是否会在用户过多的情况下导致问题?例如,如果即时用户的数量是 500,我们可以在一年中的某些日子达到 5000 即时用户。那些日子我需要进行特殊设置(例如池大小 100)还是默认设置就足够了?
提前感谢。
【问题讨论】:
标签: node.js oracle connection-pooling node-oracledb fastify