我们在副本中有3个实例。主要有2核CPU和4 GB RAM。次要1核CPU和4 GB RAM。具有1个核心CPU和2 GB RAM的仲裁器。带有WiredTiger的MongoDB 3:高CPU负载
第一测试:
mongodb的-ORG-服务器2.6.10-1.x86_64
logpath=/var/log/mongodb/mongod.log
logappend=true
fork=true
dbpath=/mnt/mongo
pidfilepath=/var/run/mongodb/mongod.pid
和第二测试:mongodb的-ORG-服务器3.0.4-1.x86_64
processManagement:
pidFilePath: "/var/run/mongodb/mongod.pid"
fork: true
storage:
dbPath: "/mnt/mongo/"
engine: "wiredTiger"
wiredTiger:
collectionConfig:
blockCompressor: none
engineConfig:
cacheSizeGB: 2
journalCompressor: none
indexConfig:
prefixCompression: false
systemLog:
destination: file
path: "/var/log/mongodb/mongod.log"
logAppend: true
replication:
replSetName: testrepl
CPU使用率:http://i.imgur.com/Nmj021g.png
在相同负载测试我们对MongoDB的2个CPU负载3与WiredTiger引擎。
MongoDB的统计:http://i.imgur.com/cxrfUIC.png
所以,问题是为什么MongoDB的3 WiredTiger使用2倍以上CPU? WiredTiger是否正常?数据库中的数据在测试之间没有改变。两次都有相同的负载测试场景。
压缩似乎在上面的例子中被关闭:'blockCompressor'为'none','journalCompressor'为'none',并且'prefixCompression'为'false'。 –
我的坏,没有注意到。这可能是WiredTiger如何工作的一些细节,可能未针对运行W/O压缩进行优化。我建议[提交bug](https://jira.mongodb.org/secure/Dashboard.jspa)。 –
是的,它的确很好奇。通常情况下,压缩是一种性能优势,所以我建议再次运行测试并打开精简压缩。我敢打赌,这有一个改进。 –