Frage

Wir versuchen, einen API -Server für unser Projekt zu erstellen.

Wir verwenden MongoDB mit Pymongo auf Debian -Boxen. Jeder ist auf dem neuesten Stand.

Aber wir haben ein wirklich seltsames Verbindungsproblem. Es gibt im Allgemeinen mehr als 15K-32K-Anschlüsse zum MongoDB-Anschluss

root@webserver1:/# netstat -na | grep mongo_db_ip | WC -l

Ich habe 15363

Verbindungen sind zum Zeitpunkt der Zeit ...

Aber wenn ich Mongo überprüfe, sehe ich im Moment nur 5-6 Verbindungen ...

Wir haben eine MongoDB -Klasse geschrieben, die eine Instanz schafft und Verbindung herstellt. Wir haben versucht, Conn.Disconnect () oder Conn.end_Request () jedes Mal zu beenden, aber es wird nicht diese hohe Verbindungsnummer gestoppt ...

Gibt es jemand, was mein Fehler sein soll, oder gibt es eine schriftliche Python -Klasse für MongoDB, um zu untersuchen, wie andere wie Sachen machen ...

Vielen Dank für Hilfe und Informationen ...

War es hilfreich?

Lösung

Time_wait ist keine offene Verbindung. Es ist ein Betriebssystemzustand für eine Steckdose, sodass sichergestellt werden kann, dass alle Daten durchlaufen. Afaik, die Standardlänge dafür unter Linux ist eine Minute. Sich ansehen http://antmeetspenguin.blogspot.com/2008/10/Timewait-in-netstat.html, Es hat eine gute Erklärung. Sie können dem Kernel sagen, er soll die Time_wait -Sockets wiederverwenden:

echo 30 > /proc/sys/net/ipv4/tcp_fin_timeout

reduziert es auf 30 Sekunden.

Sie sollten jedoch überprüfen, warum Sie so viele Verbindungen herstellen. Sie sagen, Sie verwenden die Debian -Pakete für Mongod und Pymongo, und sie sind in der Regel veraltet. Sie möchten wirklich Mongod 2.0.2 und Pymongo 2.1.1 ausführen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top