相关疑难解决方法(0)

有多少线程太多了?

我正在编写一个服务器,当请求传入时,我将每个动作分支到一个线程中.我这样做是因为几乎每个请求都进行数据库查询.我正在使用线程池库来减少线程的构造/销毁.

我的问题是 - 像这样的I/O线程有什么好的截止点?我知道这只是一个粗略的估计,但我们是在说几百个?成千上万的?


编辑:

谢谢大家的回复,似乎我只是要测试它以找出我的线程数上限.问题是:我怎么知道我达到了这个上限?究竟应该测量什么?

performance multithreading threadpool

291
推荐指数
7
解决办法
20万
查看次数

为什么许多打开的连接的连接池对于系统来说比每次打开新连接的成本更低?

答案来自这里

通常,打开数据库连接是一项昂贵的操作,因此池保持连接处于活动状态,以便在稍后请求连接时,使用其中一个活动连接而不是打开另一个连接.

我理解Connection PoolDB管理的概念.这就是" 什么是〜 "问题的答案.所有开发人员的博客文章,答案,教程,数据库文档总是回答" 什么是 " 的问题.就像他们不断地从彼此复制/粘贴文本一样.没有人试图解释" 为什么会如此 "和" 如何 ".上面的答案就是一个例子.

我无法理解为什么以及如何保持池中30个打开的连接对于系统而言比在需要时打开新连接成本更低.

假设我在澳大利亚有一个Web服务器.AWS中的数据库位于美国俄勒冈州的某个地方.或者以GB.或者在远离AUS的任何地方.所以他们都说保持一个20 -...打开的连接池对于内存和系统性能来说比在这种情况下每次打开一个新连接要便宜?它怎么样?为什么?

database connection-pooling

4
推荐指数
1
解决办法
1042
查看次数

Should I keep Sequelize instance throughout server running time?

I have a Sequelize instance and it is exported in a file to be accessed when doing DB operations.

const sequelize = new Sequelize('database', 'username', null, {
  dialect: 'mysql'
});
module.exports = sequelize;
Run Code Online (Sandbox Code Playgroud)

So the instance is created when the expressjs server starts and never destroys. I wonder if this is the correct way to do, or should I call new Sequelize every time I use the DB operation?

I think it should be kept alive because that's how DB …

node.js sequelize.js

3
推荐指数
1
解决办法
1100
查看次数