2016-10-12 143 views
1

我在Ubuntu 14.04.4 上設置了MongoDB服務器,有時它的停止原因不明。你有什麼想法 ?MongoDB停止不明原因

您可以在啓動mongod實例之前和之後查看最近的日誌。

2016-10-12T08:47:32.223+0000 I NETWORK [HostnameCanonicalizationWorker] Starting hostname canonicalization worker 
2016-10-12T08:47:32.222+0000 I FTDC [initandlisten] Initializing full-time diagnostic data capture with directory '/var/lib/mongodb/diagnostic.data' 
2016-10-12T08:47:31.727+0000 I STORAGE [initandlisten] wiredtiger_open config: create,cache_size=1G,session_max=20000,eviction=(threads_max=4),config_base=false,statistics=(fast),log=(enabled=true,archive=true,path=journal,compressor=snappy),file_manager=(close_idle_time=100000),checkpoint=(wait=60,log_size=2GB),statistics_log=(wait=0), 
2016-10-12T08:47:31.727+0000 W STORAGE [initandlisten] Recovering data from the last clean checkpoint. 
2016-10-12T08:47:31.727+0000 W - [initandlisten] Detected unclean shutdown - /var/lib/mongodb/mongod.lock is not empty. 
2016-10-12T08:47:31.727+0000 I - [initandlisten] Detected data files in /var/lib/mongodb created by the 'wiredTiger' storage engine, so setting the active storage engine to 'wiredTiger'. 
2016-10-12T08:47:31.700+0000 I CONTROL [initandlisten] options: { config: "/etc/mongod.conf", net: { bindIp: "127.0.0.1,server_ip", port: 27017 }, storage: { dbPath: "/var/lib/mongodb", journal: { enabled: true } }, systemLog: { destination: "file", logAppend: true, path: "/var/log/mongodb/mongod.log" } } 
2016-10-12T08:47:31.700+0000 I CONTROL [initandlisten] target_arch: x86_64 
2016-10-12T08:47:31.700+0000 I CONTROL [initandlisten] distarch: x86_64 
2016-10-12T08:47:31.700+0000 I CONTROL [initandlisten] distmod: ubuntu1404 
2016-10-12T08:47:31.700+0000 I CONTROL [initandlisten] build environment: 
2016-10-12T08:47:31.700+0000 I CONTROL [initandlisten] modules: none 
2016-10-12T08:47:31.700+0000 I CONTROL [initandlisten] allocator: tcmalloc 
2016-10-12T08:47:31.700+0000 I CONTROL [initandlisten] OpenSSL version: OpenSSL 1.0.1f 6 Jan 2014 
2016-10-12T08:47:31.700+0000 I CONTROL [initandlisten] git version: 79d9b3ab5ce20f51c272b4411202710a082d0317 
2016-10-12T08:47:31.700+0000 I CONTROL [initandlisten] db version v3.2.10 
2016-10-12T08:47:31.700+0000 I CONTROL [initandlisten] MongoDB starting : pid=4487 port=27017 dbpath=/var/lib/mongodb 64-bit host=db-server 
2016-10-11T06:54:31.233+0000 I ACCESS [conn1] Successfully authenticated as principal agent on admin 
2016-10-11T06:54:29.641+0000 I ACCESS [conn6] Successfully authenticated as principal agent on admin 

注:我沒有改變,除了綁定IP的配置文件什麼。

UPDATE

當我看到syslog文件;

Oct 11 02:54:38 db-server kernel: [] Out of memory: Kill process 26603 (mongod) score 687 or sacrifice child 
Oct 11 02:54:38 db-server kernel: [] init: mongod main process (26603) killed by KILL signal 
+0

看起來在mongo日誌中沒有任何錯誤 - 您可以查看操作系統日誌(/ var/log/messages,/ var/log/syslog,journalctl mongo,具體取決於您的版本)並粘貼任何可能相關的東西? –

+0

@MattInnes我更新了這個問題。它看起來像記憶是問題。我如何設置mongodb的最大內存使用量? –

回答

1

看起來你的mongo進程已經被Linux內存不足的殺手所殺。這通常發生在您的計算機內存不足以及需要殺死某些內容以防止操作系統崩潰時。

您可以爲它做些什麼指導。您可以在本文的一些建議看看:

OOM Killer

另外,您可以嘗試在更少的內存運行蒙戈,但蒙戈可能很難配置,以限制內存的使用。有一些指導這裏:

Easy Steps to Limit Mongodb Memory Usage

可能是你沒有包裝盒上的足夠的內存來運行蒙戈 - 你的Ubuntu服務器上有多少內存,你呢?

+0

感謝您的回答。我會嘗試。我有1 GB的內存,目前我用於測試的時候,我計劃增加到4GB。我希望它有足夠的時間 –

+1

WiredTiger(根據日誌使用)使用最低1Gb緩存(https://docs.mongodb.com/manual/core/wiredtiger/#wiredtiger-ram),所以你可能會遇到麻煩讓它運行.... 2Gb應該沒問題,只要你沒有在服務器上運行太多 –