Question

nous essayons de faire un serveur api pour notre projet.

nous utilisons mongodb avec pymongo sur les boîtes debian. everyhting est jusqu'à jour.

mais nous avons un problème de connexion vraiment bizarre. il y a généralement plus de 15k-32k connexions au port de MongoDB quand je vérifie avec

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

i eu 15363

les connexions sont à l'état TIME_WAIT ...

mais quand je vérifie mongo, je ne vois 5-6 connexions au moment ...

nous avons écrit une classe MongoDB, qui crée une instance et marques lien. nous avons essayé appel conn.disconnect () ou conn.end_request () chaque fin de requête, mais il n'est pas stoped que la connexion haute nombre ...

est-ce que quelqu'un peut dire ce qui devrait être mon erreur, ou est-il classe python écrit pour MongoDB d'examiner comment les autres font, comme choses ...

Merci pour l'aide et de l'information ...

Était-ce utile?

La solution

TIME_WAIT n'est pas une connexion ouverte. Il est un état du système d'exploitation pour une prise de manière à pouvoir assurer que toutes les données a traversé. Autant que je sache, la longueur par défaut de ce sous Linux est une minute. Jetez un oeil à http://antmeetspenguin.blogspot.com/2008/10 /timewait-in-netstat.html , il a une bonne explication. Vous pouvez dire au noyau de réutiliser les prises TIME_WAIT si:

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

réduit à 30 secondes.

Cependant, vous devriez vérifier pourquoi vous faites tant de connexions. Vous dites que vous utilisez les paquets Debian pour mongod et pymongo, et ils ont tendance à être à jour. Vous voulez vraiment être en cours d'exécution mongod 2.0.2 et 2.1.1 pymongo.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top