FAQ MongoDBConsultez toutes les FAQ

Nombre d'auteurs : 1, nombre de questions : 331, dernière mise à jour : 18 décembre 2016  Ajouter une question

 

Cette FAQ a été réalisée à partir de la documentation officielle de Mongodb, des questions fréquemment posées sur les forums NoSQL Developpez.com et de l'expérience personnelle des auteurs.

Nous tenons à souligner que cette FAQ ne garantit en aucun cas que les informations qu'elle propose sont correctes. Les auteurs font leur maximum, mais l'erreur est humaine. Cette FAQ ne prétend pas non plus être complète. Si vous trouvez une erreur, ou que vous souhaitez nous aider en devenant rédacteur, lisez ceci.


SommaireDiagnostiquer MongoDBEst-ce que le temps TCP keepalive affecte les déploiements MongoDB ? (3)
précédent sommaire suivant
 

Si vous rencontrez des erreurs de socket entre clients et serveurs ou entre les membres d'un cluster fragmenté ou d'un replica set qui n'ont pas d'autres causes raisonnables, vérifiez la valeur de TCP keepalive (par exemple, sur les systèmes Linux, la valeur de tcp_keepalive_time). Une période keepalive commune est de 7200 secondes (deux heures) ; cependant, les différentes distributions et OS X peuvent avoir des paramètres différents.

Pour MongoDB, vous aurez de meilleurs résultats avec des périodes keepalive plus courtes, de l'ordre de 120 secondes (deux minutes).

Si votre déploiement MongoDB rencontre des problèmes liés au keepalive, vous devez modifier cette valeur sur toutes les machines hébergeant des processus MongoDB. Cela comprend toutes les machines hébergeant des serveurs mongos ou mongod et toutes les machines hébergeant des processus clients qui se connectent à MongoDB.

Pour les systèmes non Linux, des valeurs supérieures ou égales à 600 secondes (dix minutes) seront ignorées par mongod et mongos. Pour Linux, les valeurs supérieures à 300 secondes (cinq minutes) seront remplacées sur les sockets de mongod et mongos par un maximum de 300 secondes.

Mis à jour le 11 décembre 2016

  • Pour afficher le paramètre keepalive, vous pouvez utiliser l'une des commandes suivantes :

    Code : Sélectionner tout
    sysctl net.ipv4.tcp_keepalive_time
  • Ou :

    Code : Sélectionner tout
    cat /proc/sys/net/ipv4/tcp_keepalive_time
  • La valeur est exprimée en secondes.
  • Pour modifier la valeur tcp_keepalive_time, vous pouvez utiliser une des commandes suivantes :

    Code : Sélectionner tout
    sudo sysctl -w net.ipv4.tcp_keepalive_time=<valeur>
  • Ou :

    Code : Sélectionner tout
    echo <valeur> | sudo tee /proc/sys/net/ipv4/tcp_keepalive_time
  • Ces opérations ne persistent pas après les redémarrages système. Pour persister le paramètre, ajoutez cette ligne à /etc/sysctl.conf :

    Code : Sélectionner tout
    net.ipv4.tcp_keepalive_time = <value>
  • Sur Linux, les processus mongod et mongos limitent la valeur du keepalive sur leurs propres sockets à un maximum de 300 secondes (cinq minutes), en remplaçant les valeurs supérieures à cinq minutes.

Mis à jour le 11 décembre 2016

  • Pour visualiser le paramètre keepalive, exécutez la commande suivante :

    Code : Sélectionner tout
    sysctl net.inet.tcp.keepinit
  • Pour modifier la valeur net.inet.tcp.keepinit, vous pouvez utiliser la commande suivante :

    Code : Sélectionner tout
    sysctl -w net.inet.tcp.keepinit=<valeur>
  • La méthode de configuration du TCP keepalive ci-dessus n'est pas persistante, vous devrez configurer la valeur après chaque redémarrage du système. Consultez la documentation de votre système d'exploitation pour obtenir des instructions sur le réglage de la valeur keepalive TCP de façon persistante.

Mis à jour le 11 décembre 2016

Proposer une nouvelle réponse sur la FAQ

Ce n'est pas l'endroit pour poser des questions, allez plutôt sur le forum de la rubrique pour ça


Réponse à la question

Liens sous la question
précédent sommaire suivant
 

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2020 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.