每当我受 CPU 限制(在 SSD 上运行)时,我都会看到 Mongo 在我的机器上只使用一个 cpu。我有 8 个。Mongo 可以使用它吗?最好在 ruby 中,如果没有,我可以轻松转换。
问问题
4512 次
1 回答
0
在 MongoDB 2.2 中当前的 javascript 引擎(即 Mozilla 的 SpiderMonkey)中,mongod 进程中一次只有一个线程执行 Javascript,因此包括 map/reduce 和聚合在内的 JS 操作将被锁定在一个线程中。您可以通过插入 hadoop 适配器来执行并发 map/reduce。不使用 javascript 的 I/O 操作可以同时运行,同时遵守 v2.2 中引入的某些锁定规则,因此可以以有限的方式实现并行性。如果您正在运行 mongos(对数据进行分片),则可以实现更好的并发性,但通常在单个 mongod 进程中,您将被限制为单个线程。
于 2012-11-16T17:36:21.997 回答