我有一台7 cpu服务器,但是Mongo永远不会超过100%cpu使用率。我在Centos 7上安装了香草Mongo v3.6.2单节点。当我在其中一个集合上重建索引时,CPU峰值将达到100%。在这段时间内,用户将被禁止访问其他集合(超时错误)。我还有6个空闲的CPU。
是否存在阻止Mongo使用其他CPU的配置?我不想在一个集合上重建索引以防止用户访问完全不同的集合。
我已将ulimits -a
作为mongod用户进行了检查,它返回的内容不受限制。
在构建索引时,通过Robo3T在另一个集合上运行简单查找查询时的示例错误。通常,此查询会立即返回:
Failed to execute all of the script. The script has reached shell timeout (300 seconds) limit.
答案 0 :(得分:1)
用户被“锁定”是因为建立索引而不是CPU的“峰值”。以下是在线文档Index Build Operations on a Populated Collection的引用。
默认情况下,在填充的集合上创建索引会阻止所有 数据库上的其他操作。在填充的索引上构建索引时 集合,保存集合的数据库不可用于 读取或写入操作,直到索引构建完成。