Pourquoi puis-je avoir des timeouts de connection aux services privés dans Azure?

Je semble le voir avec mon server SQL et mon set de réplicas MongoDB. Je ne reçois qu'une poignée de jour, mais cela me concerne toujours.

Je reçois un timeout d'attente lorsque j'essaie d'ouvrir une nouvelle connection au système distant. Cela se produit même lorsque le système distant est en train de répondre. J'ai une seule instance SQL Server et un set de réplicas mongodb à 3 systèmes. Il semble se produire plutôt sporadiquement sous des charges modérées à plus élevées.

J'utilise les pools de connection, et les tailles devraient limiter les connections (par process, bien sûr), ne devraient pas voir plus de 1k de connections, de même que je vois des temporisations tentant de se connecter.

Le server SQL est Windows (bien sûr), les instances de mongodb sont sous Ubuntu et les clients sont une combinaison de node.js sous Linux et Windows, ainsi que des applications .Net 4.5.

Je suis en train de créer une architecture plus résiliente (essayer 3 fois avant l'échec), tout comme le problème me concerne.

Que cherchiez-vous en termes de problèmes ici?

One Solution collect form web for “Pourquoi puis-je avoir des timeouts de connection aux services privés dans Azure?”

La question est ancienne et ce pourrait être un problème de racine différent, mais depuis que j'ai passé plus d'une semaine à le suivre et que cela pourrait gagner du time ici:

J'ai un problème qui présente une erreur similaire. après avoir creusé avec le support technique azure leur meilleure estimation (ils ne sont pas sûrs ) est que les connections inactives sont tuées par un proxy entre les applications Web et le server. Cela se produit après environ 4 minutes. et de telle sorte que le server et le client ne include pas que cela se produit. Lorsque vous essayez d'utiliser la connection dans cet état, le client envoie des packages qui ne le font jamais au server.

Enfin, j'ai entendu dire que cela ne serait pas changé / corrigé. de sorte que les options pour éviter cela (dans l'ordre de la santé mentale) sont les suivantes:

  1. tuer les connections inactives sur le server à la marque ~ 3 minutes.
  2. définissez le client pour tuer la connection s'il est inactif à la marque ~ 3 minutes.
  3. assurez-vous de ne pas disposer de connections inactives en effectuant du travail occupé sur le client.

votre tentative à nouveau si la connection échoue fonctionnera si elle créera réellement une nouvelle connection, sinon elle ne fera que l'application attendre plus longtime avant d'arriver au même point.

Je vais mettre à jour dans une semaine si cela corrige réellement le problème pour de bon.

edit: Une combinaison de tuer les connections inactives sur le client et d'envoyer un keep-alive du server toutes les 2 minutes a rendu ce problème disparu.

  • Délai de time DNS intermittent
  • Proftpd: différence entre TimeoutNoTranfer et TimeoutIdle
  • Trop de connections d'état TIME_WAIT!
  • Comment configurer mod_reqtimeout dans Apache2
  • proftpd: temporisation de connection mod_sftp
  • ESXi 5.0 iSCSI Timeout augmente pour mettre à niveau Equalogic Firmware
  • ERR_CONNECTION_TIMED_OUT (sauf si j'utilise un proxy)
  • Pourquoi ssh fonctionnerait-il la première, la deuxième et la troisième fois, mais le time sur le quasortingème?
  • Devrait-il un timeout d'attente DNS A entraîner une panne de courrier électronique permanente?
  • Pourquoi un server Web peut-il ne pas répondre?
  • Modification du timeout de démarrage de MySQL ( signalé bien que mysql ait correctement démarré)
  • Les astuces du serveur de linux et windows, tels que ubuntu, centos, apache, nginx, debian et des sujets de rĂ©seau.