2012-08-28 75 views
1

我只是恢復一個數據庫,我甩了幾分鐘後做出一些更改。 Mongorestore佔用了大約100%的CPU,並且比預期的時間多得多。我想,這可能是由於我創建的索引,但是,即使恢復一個集合,問題也是如此。一個集合大小約314MB,大約有185000個文檔。 通常,這件事情不會發生。這可能是由於我的系統磁盤空間較少,但也是11GB。 任何人都可以幫助我,它可能是什麼問題?MongoRestore花費比預期更多的時間和CPU

注意:我正在從mongo客戶端進行操作。不包括司機。

+2

你能澄清一下 - mongorestore過程是100%CPU還是你插入100%CPU的mongod?如果是mongod,那麼運行mongotop和mongostat應該讓你更好地瞭解這裏的工作。另外,在mongod日誌中查看是否有任何相關內容併發布該輸出是個好主意 –

+1

嘿Adam,感謝您的回覆。我認爲,問題已經解決,這是由於mongodb日誌文件的大小。我有很多天有單個文件,因爲它的尺寸大大增加了。 :) –

回答

0

正如你在,這是關係到日誌的評論所指出的,那麼我會建議採取幾個步驟:

首先,使用日誌旋轉。這可以通過對數據庫的命令或將SIGUSR1信號發送給進程來完成,因此腳本或定期啓用cron作業非常容易。點擊此處瞭解詳情:

http://www.mongodb.org/display/DOCS/Logging#Logging-Rotatingthelogfiles

其次,確認您的日誌記錄級別。以-v = log level 1開頭; -vv = log leve 2等。您可以在啓動時和運行時調整它。對於運行時間的調整,可以使用setParameter command

// connect to the database or mongos 
use admin; 
// check the log level 
db.runCommand({getParameter : 1, logLevel: 1}) 
{ "logLevel" : 0, "ok" : 1 } 
// set it higher 
db.runCommand({setParameter : 1, logLevel: 1}) 
// back to default levels 
{ "was" : 0, "ok" : 1 } 
db.runCommand({setParameter : 1, logLevel: 0}) 
{ "was" : 1, "ok" : 1 } 

最後,您還可以--quiet運行以減少一些消息也。

相關問題