带有mongodb的MacOS -community@4.2(使用brew安装)
TLDR: MongoDB只是作为一个进程运行,似乎没有利用其他7个可用的CPU核心。
我正在用NodeJS运行一个简单的PM2应用程序,它使用了我所有的8个CPU核心。
使用Apache基准测试,我尝试对应用程序进行数据检索的压力测试。我碰到的端点从我的MongoDB数据库中检索数据。(只进行读取,不执行写入操作)。
在压力测试中,我得到了以下结果:
从顶部截图:

为什么MongoDB只使用一个进程/核心?
我可以通过配置它来使用多个进程/核心来提高性能吗?
一些附加信息,serverStatus()在压力测试期间运行:

发布于 2020-02-23 12:08:46
MongoDB ( 任何数据库)与单个进程一起工作以确保的一致性,它使用锁定和其他并发控制措施来防止多个客户端同时修改相同的数据。
MongoDB性能
在某些情况下,应用程序和数据库之间的连接数量会超过服务器处理请求的能力。serverStatus文档中的下列字段可以提供洞察力:
connections.current连接到数据库实例的当前客户端总数。connections.available可供新客户端使用的未使用连接总数。
如果存在大量并发应用程序请求,则数据库可能难以满足需求。如果是这样的话,那么您将需要增加部署的能力。
对于读取量大的应用程序,会增加副本集的大小,并将读取操作分发给辅助成员。
对于编写量大的应用程序,部署切分并将一个或多个碎片添加到分片集群中,以便在单神实例之间分配负载。
https://docs.mongodb.com/manual/administration/analyzing-mongodb-performance/#number-of-connections
https://stackoverflow.com/questions/60355479
复制相似问题