SocketException in Mongo-Protokollen

8

Wir laufen bisher 4 Monate lang Mongo, aber in letzter Zeit sehe ich viel

SocketException handling request, closing client connection: 9001 socket exception [2] server [127.0.0.1:58996]

Wie kann ich die Ursache dieses Fehlers ermitteln? Bezieht es sich auf Codeprobleme oder Administratorkonfigurationen?

Wir haben Fedora 16 Server, Mongo Version 2.0.7

Dina Abu-khader
quelle

Antworten:

6

Schauen Sie sich zunächst die hier beschriebenen Schritte an und befolgen Sie sie:

http://www.mongodb.org/display/DOCS/Troubleshooter#Troubleshooter-Socketerrorsinshardedclustersandreplicasets

Suchen Sie als Nächstes auf dem Zielhost nach ulimit-Problemen (für einen neuen Socket ist ein neuer Dateideskriptor erforderlich, der den Fehler verursachen kann):

http://www.mongodb.org/display/DOCS/Too+Many+Open+Files

Schließlich gibt es einige Probleme im Zusammenhang mit Leerlaufverbindungen, die verwendet werden, wenn dies nicht der Fall sein sollte, und die auch zu dieser Art von Problem beitragen können:

https://jira.mongodb.org/browse/SERVER-5793

Bis SERVER-5632 abgeschlossen ist, besteht die einzige Abhilfe darin, die Verbindungen durch Neustarten der Mongod / Mongos-Prozesse zu spülen.

Adam C.
quelle
2

Ich habe dies verhindert, indem ich meiner Cursor-Abfrage ein BatchSize-Optionsarg hinzugefügt habe

zB vorher:

var cursor = db.collection('images').find( {}, {"_id": 1} ).sort({"_id": 1});

nach:

var cursor = db.collection('images').find( {}, {"_id": 1} ).sort({"_id": 1}).batchSize(1000);

Dies machte es reibungsloser (nicht so viele Starts / Stopps) und mit weniger bösen Nachrichten. Keine in der Tat.

Charles Ross
quelle