我目前正在判断MongoDb的高写应用程序...
目前MongoDb使用单线程进行写操作,并且在写操作时也使用全局锁...有可能利用多CPU服务器上的多CPU来获得更好的写性能吗?您的全局写锁解决方案是什么?
我目前正在判断MongoDb的高写应用程序...
目前MongoDb使用单线程进行写操作,并且在写操作时也使用全局锁...有可能利用多CPU服务器上的多CPU来获得更好的写性能吗?您的全局写锁解决方案是什么?
所以现在,最简单的解决办法就是切分.
是的,通常分片是跨服务器进行的.然而,在一个盒子上切分是完全可能的.您只需在不同的端口上启动碎片,并为它们提供不同的文件夹.一个盒子上2块碎片中的Here's a sample configuration块.
MongoDB团队认识到这是一种低于标准的做法,我从与他们的交谈中了解到,他们正在寻找更好的方法来做到这一点.
显然,一旦一个盒子上有多个碎片,并且增加了写入线程,就必须警惕磁盘IO.根据我的经验,我能够用一个写线程使磁盘饱和.如果插入/更新相对简单,您可能会发现额外的写线程没有任何作用.( map 缩小在这里是个例外,切分肯定会有帮助)