Base De Données De La Latence Du Réseau
Je suis actuellement en train de travailler sur un n-système de niveau et en luttant contre certains de la base de données des problèmes de performances.
Nous avons étudié est le temps de latence entre le serveur de base de données et le serveur d'application. Dans notre environnement de test de la
moyenne de temps de ping entre les deux zones est dans la région de 0,2 ms toutefois sur les clients de son site de plus dans la région de 8,2 ms. C'est que
quelque chose que nous devrions être inquiets?
Pour votre système moyen de quoi les gars, vous ne considérez un resonable latence et comment feriez-vous pour l'essai/mesure de la latence?
Karl
Vous devez vous connecter pour publier un commentaire.
En bref : pas de !
Ce que vous devez surveiller est la performance globale de vos requêtes (c'est à dire le transport de la DB + exécution + le transport de retour à votre serveur)
Ce que vous pourriez faire est d'utiliser un compteur de performance pour surveiller le temps de vos requêtes prennent généralement à exécuter.
Vous verrez probablement que vos résultats sont plus de l'ordre de la milliseconde zone.
Il n'y a pas une telle chose comme "Raisonnable de latence". Vous devriez plutôt envisager le "Raisonnable latence pour votre projet", qui varient beaucoup en fonction de ce que vous travaillez sur.
Les gens n'ont pas la même attente pour un temps réel de la plateforme de trading et pour une lecture que l'amateur site web.
Désolé pour la très prématurée de réponse, mais je suis tombé sur cette question quand j'étais à la recherche pour les paramètres de ce réseau que les latences d'autres ont été la réalisation d'entre leur serveur d'application et le serveur de base de données. De toute façon, j'ai remarqué que les autres réponses
De toute façon, en bref : oui, la latence du réseau (mesurée par ping) peut faire une énorme différence.
Si votre base de données de la réaction .001ms ensuite, vous verrez un énorme impact d'aller de 0,2 ms à 8 ms de ping. J'ai entendu dire que la base de données de protocoles sont bavards, qui, si vrai qu'ils ne sont plus touchés par la lenteur de la latence du réseau par rapport à http.
Et plus que probablement, si vous êtes en cours d'exécution 1 de la requête, puis l'ajout de 8ms pour obtenir la réponse de la db ne va pas à la matière. Mais si vous faites de 10 000 requêtes qui se passe généralement avec de mauvais code ou de la non-optimisation de l'utilisation d'un ORM, alors vous devrez attendre un 80seconds pour un 8 ms de ping, où un de 0,2 ms de ping, vous n'attendez 4 secondes.
Comme une question de politique pour moi-même, je ne laisse jamais les applications client de communiquer avec la base de données directement. J'exige que les applications client de toujours passer par un serveur d'application (par exemple, un service web REST). De cette façon, si j'ai accidentellement ont un "1+N" ORM problème, alors il n'est pas aussi percutant. Je voudrais encore essayer de résoudre le problème sous-jacent...
Sur un linux serveur, vous pouvez tester l'effet de la latence de vous-même en utilisant les tc de commande.
Par exemple cette commande ajoutera retard de 10 ms pour tous les paquets passant par eth0
utilisez cette commande pour supprimer le délai
Plus de détails sont disponibles ici:
http://devresources.linux-foundation.org/shemminger/netem/example.html
Toutes les applications diffèrent, mais j'ai certainement vu des situations où les 10ms de latence a eu un impact significatif sur les performances du système.
Un de la tête honchos à answers.com dit, selon leurs études, de 400 ms de temps d'attente pour un chargement de la page web est sur le temps dès qu'ils commencent à obtenir des gens de l'annulation du chargement de la page et aller ailleurs. Mon conseil est de regarder l'ensemble du processus, de la demande du client d'origine à l'accomplissement et si vous vous débrouillez bien là, il n'y a pas besoin d'optimiser davantage. 8.2 ms vs 0.2 ms est exponentiellement plus grande dans un sens mathématique, mais d'un sens humain, personne ne peut vraiment percevoir un 8.0 ms différence. C'est pourquoi ils ont une photo de finitions dans les courses 😉