根据https://docs.mongodb.com/manual/administration/production-notes/#id5 The WiredTiger storage engine is multithreaded and can take advantage of additional CPU cores.
我们将在 VMware vSphere 环境中运行 mongoDB,我的任务是分配资源。当涉及到虚拟 CPU 内核时,这种说法是否成立?
谢谢!
根据https://docs.mongodb.com/manual/administration/production-notes/#id5 The WiredTiger storage engine is multithreaded and can take advantage of additional CPU cores.
我们将在 VMware vSphere 环境中运行 mongoDB,我的任务是分配资源。当涉及到虚拟 CPU 内核时,这种说法是否成立?
谢谢!
根据我的理解,MongoDB 文档基于物理核心进行定义。
正如@UmaPanda在此处的博客中指出的那样,这个主题一直是关于在虚拟化环境中定义物理 CPU 与虚拟 CPU 的适当比例的永恒争论。
首先你了解基本的计算:
请注意,超线程实际上并没有使物理 CPU 的可用量翻倍。它通过向处理器核心提供第二个执行线程来工作。因此,具有 4 个物理内核和超线程的处理器将显示为 8 个逻辑内核,仅用于调度目的。
MongoDB 文档还指出,这里具体来说,相对于可用 CPU 数量的活动线程总数(即并发操作)会影响性能:
吞吐量随着并发活动操作的数量增加到 CPU 数量而增加。
当并发活动操作的数量超过 CPU 数量一定数量时,吞吐量会降低
threshold
。阈值取决于您的应用程序。您可以通过试验和测量吞吐量来确定应用程序并发活动操作的最佳数量。mongostat的输出提供有关 (ar|aw) 列中活动读/写次数的统计信息。
也来自 MongoDB 博客注释MongoDB 将在更快的 CPU 上提供更好的性能。因此,MongoDB 性能最佳实践之一是核心速度比核心数量更重要。
如需进一步参考,请点击此处、此处、此处和此处