2011-02-05 178 views
1

我剛剛安裝了MongoDB。我不'複製。我打開的所有配置文件都是auth。我正確地配置了它。在MongoDB中這意味着什麼?

它主要工作,但隨機時,它「掛起」,並導致我的CPU跳到LOAD 4.0,當我做「頂」。

當我查看消息日誌,我看到很多這樣的:

[DataFileSync] flushing mmap took 0ms for 5 files 
[DataFileSync] flushing mmap took 0ms for 5 files 
[DataFileSync] flushing mmap took 0ms for 5 files 

這很奇怪,因爲它只是掛起並沒有任何反應。這些消息不斷出現,並且「接受的連接」不再出現。我沒有複製,並且我沒有使用除auth之外的任何設置配置mongo。

好,蒙戈沒有崩潰一次,我做了一個「命令重啓」一週時間,同時蒙戈仍然runningl

回答

0

即同步看起來相當正常的,只花了0毫秒...

也就是說,MongoDB的確實有數據庫級鎖,這樣即使有些操作引起的鎖(如長的查詢,將「掛起」您的整個數據庫,建立一個大的索引等)

我會關閉你的數據庫並運行一個repair

您可以運行validate第一...去看看,如果發現什麼...

> db.mycollection.validate(); 

這可能是有在造成你所說的不正常關機您的數據文件錯誤...而且這些錯誤會越來越嚴重。

$ ./mongod --repair 

如果沒有太多的負載,您也可以運行「live」修復。

> db.repairDatabase(); 

您也可以嘗試和anylise的mongostat的結果...

2

MongoDB使用內存映射文件;數據更改偶爾會從RAM刷新到磁盤。這將是你看到的地圖刷新。

+0

但爲什麼它掛,並導致我的CPU秒殺到4.0嗎?我看到的只是那些登錄到日誌文件的地圖。我在日誌文件中看不到其他東西 – TIMEX 2011-02-05 21:19:35

0

默認情況下,mongodb會每60秒將更改刷新到磁盤。不過,在這段時間內不應該掛斷電話。

你用的是什麼版本的mongodb?

+0

我正在使用:MongoDB shell版本:1.6.5 – TIMEX 2011-02-05 21:16:10

+0

另外,rsyslogd尖峯到99%以及mongod – TIMEX 2011-02-05 22:07:15