我們在副本中有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)。 –
是的,它的確很好奇。通常情況下,壓縮是一種性能優勢,所以我建議再次運行測試並打開精簡壓縮。我敢打賭,這有一個改進。 –