GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Warum wird unter Linux der Fehler Mongod tot, aber Subsys gesperrt und nicht genügend freier Speicherplatz für Journaldateien angezeigt?

Sie können Folgendes zur Konfigurationsdatei hinzufügen, die beim Ausführen von mongod --config mongod.conf bereitgestellt wird

Für MongoDB 3.x (neueste Version)

storage:
   mmapv1:
      smallFiles: true

Für Version 2.6+

storage:
   smallFiles: true

Für Version 2.4 und weniger

smallfiles = true

Führen Sie dann einfach mongod aus, um Ihre Konfigurationsdatei zu akzeptieren (hier wird davon ausgegangen, dass der Speicherort der Konfiguration /etc/mongodb.conf ist ):

mongod -f /etc/mongodb.conf

Dokumentation für kleine Dateien Parameter:

Set to true to modify MongoDB to use a smaller default data file size. 
Specifically, smallfiles reduces the initial size for data files and
limits them to 512 megabytes. The smallfiles setting also reduces the
size of each journal files from 1 gigabyte to 128 megabytes.

Starten Sie mongod Instanz mit folgendem Befehl

mongod --dbpath /data/db --smallfiles

Ich habe die offizielle Anleitung unter http://docs.mongodb.org/manual/tutorial/install-mongodb-on-ubuntu/

befolgt

Nach der Verwendung von

$sudo service mongod start

Ich habe überprüft, ob MongoDB erfolgreich gestartet wurde, indem ich dieses Protokoll überprüft habe:

/var/log/mongodb/mongod.log

Dies ist das Problem, das ich gefunden habe:

2014-11-11T12:54:05.808-0500 [initandlisten] ERROR: Insufficient free space for journal files
2014-11-11T12:54:05.808-0500 [initandlisten] Please make at least 3379MB available in /var/lib/mongodb/journal or use --smallfiles
2014-11-11T12:54:05.808-0500 [initandlisten]
2014-11-11T12:54:05.808-0500 [initandlisten] exception in initAndListen: 15926 Insufficient free space for journals, terminating
2014-11-11T12:54:05.808-0500 [initandlisten] dbexit:
2014-11-11T12:54:05.808-0500 [initandlisten] shutdown: going to close listening sockets...
2014-11-11T12:54:05.808-0500 [initandlisten] shutdown: going to flush diaglog...
2014-11-11T12:54:05.808-0500 [initandlisten] shutdown: going to close sockets...
2014-11-11T12:54:05.808-0500 [initandlisten] shutdown: waiting for fs preallocator...
2014-11-11T12:54:05.808-0500 [initandlisten] shutdown: lock for final commit...
2014-11-11T12:54:05.808-0500 [initandlisten] shutdown: final commit...
2014-11-11T12:54:05.808-0500 [initandlisten] shutdown: closing all files...
2014-11-11T12:54:05.808-0500 [initandlisten] closeAllFiles() finished
2014-11-11T12:54:05.808-0500 [initandlisten] journalCleanup...
2014-11-11T12:54:05.808-0500 [initandlisten] removeJournalFiles
2014-11-11T12:54:05.814-0500 [initandlisten] shutdown: removing fs lock...
2014-11-11T12:54:05.814-0500 [initandlisten] dbexit: really exiting now

Lösung:

Am Ende der Datei /etc/mongod.conf habe ich diese Zeile hinzugefügt:

smallfiles = true

Danach habe ich den Mongod-Dienst neu gestartet:

$sudo service mongod restart

Als ich dann das Protokoll überprüfte, stellte ich fest, dass alles perfekt war und das Problem behoben war:

2014-11-11T22:32:20.544-0500 ***** SERVER RESTARTED *****
2014-11-11T22:32:20.552-0500 [initandlisten] MongoDB starting : pid=5200 port=27017 dbpath=/var/lib/mongodb 64-bit host=jaimemontoya-VirtualBox
2014-11-11T22:32:20.552-0500 [initandlisten] db version v2.6.5
2014-11-11T22:32:20.552-0500 [initandlisten] git version: e99d4fcb4279c0279796f237aa92fe3b64560bf6
2014-11-11T22:32:20.552-0500 [initandlisten] build info: Linux build8.nj1.10gen.cc 2.6.32-431.3.1.el6.x86_64 #1 SMP Fri Jan 3 21:39:27 UTC 2014 x86_64 BOOST_LIB_VERSION=1_49
2014-11-11T22:32:20.552-0500 [initandlisten] allocator: tcmalloc
2014-11-11T22:32:20.552-0500 [initandlisten] options: { config: "/etc/mongod.conf", net: { bindIp: "127.0.0.1" }, storage: { dbPath: "/var/lib/mongodb", smallFiles: true }, systemLog: { destination: "file", logAppend: true, path: "/var/log/mongodb/mongod.log" } }
2014-11-11T22:32:20.564-0500 [initandlisten] journal dir=/var/lib/mongodb/journal
2014-11-11T22:32:20.564-0500 [initandlisten] recover : no journal files present, no recovery needed
2014-11-11T22:32:20.738-0500 [initandlisten] waiting for connections on port 27017
2014-11-11T22:33:20.748-0500 [clientcursormon] mem (MB) res:36 virt:245
2014-11-11T22:33:20.748-0500 [clientcursormon]  mapped (incl journal view):64
2014-11-11T22:33:20.748-0500 [clientcursormon]  connections:0

Linux
  1. 7 Linux-Befehlszeilentipps zum Einsparen von Speicherplatz für Mediendateien

  2. Verwenden Sie Find and Locate, um unter Linux nach Dateien zu suchen

  3. So prüfen Sie Änderungen an Dateien und Ausführungen von Dateien in Linux

  4. 5 kostenlose und Open-Source-Schulverwaltungssoftware für Linux

  5. httpd tot, aber subsys gesperrt

Die besten kostenlosen Videokonverter für Linux [GUI, CLI und Online]

Linux-Suche nach Zeichenfolgen in Ordnern und Dateien mit ack

Sparen Sie Platz, indem Sie Dateien und Ordner unter Linux komprimieren

40 nützliche Git-Befehle für Linux-Administratoren und -Entwickler

Erste Schritte mit und Installation von Slack für Linux

Motrix:Ein kostenloser Open-Source-Download-Manager für Linux