0

J'ai une application Web Asp.Net Azure Azure appeler une instance Redis. Je continue d'avoir des délais d'attente sur Redis. Le message que je reçois est ci-dessous.Azure Redis les délais d'attente

inst: 1, mgr: Inactive, err: never, queue: 120, qu: 0, qs: 120, qc: 0, wr: 0, wq: 0, in: 65536, ar: 0, clientName: RD0004FFA37AA4, serverEndpoint: Unspecified/server.redis.cache.windows.net:6380, keyHashSlot: 11524, IOCP: (Busy=0,Free=1000,Min=4,Max=1000), WORKER: (Busy=21,Free=8170,Min=200,Max=8191) 

L'application et redis sont dans la même région (East US 2).

Répondre

0

Ayant « dans: 65536 » dans votre message d'erreur indique qu'il ya 65536 octets assis dans la prise du noyau client tampon de réception prêtes à être traitées, mais n'a pas encore été analysé par l'application cliente.

Je l'ai vu dans deux cas:

  1. paramètres de ThreadPool doivent être ajustés (as described here). Toutefois, le message d'erreur ci-dessus ne montre pas cela comme étant un problème. Vérifiez un échantillon d'erreurs supplémentaires pour vous assurer que cela ne se produit pas dans d'autres cas.
  2. CPU côté client est en cours d'exécution à chaud. Lorsque le processeur est élevé, le code qui gère les événements de réception de socket n'est pas déclenché en temps opportun, de sorte que le code de traitement n'analyse pas les données en attente dans le tampon du noyau. Vérifiez l'historique de votre CPU client. Attention cependant - un pic de courte durée dans le processeur pourrait ne pas apparaître dans les mesures azur parce que le processeur est capturé sur un cycle périodique (je pense toutes les 20 secondes). Si le pic se produit entre ces échantillons et est court, il peut ne pas être remarqué par le système de collecte des mesures.

Autre commun client-side causes are documented here et common server-side errors are documented here.

+0

J'augmente les bandes de roulement des travailleurs en fonction de la documentation afin que n'est pas la question. Pourrait être CPU comme vous l'avez dit et il n'apparaît pas dans les mesures Azure. Je verrai si je peux trouver quelque chose là-bas. – Bipindas

+0

Un moyen sûr d'obtenir l'utilisation du processeur au moment du délai d'attente est de capturer un vidage du processus. – JonCole

+0

Il s'agit d'un service d'application Azure, donc je ne sais pas comment je ferais cela. Pour l'instant, nous n'utilisons pas Redis pour stocker de grandes collections. – Bipindas