2017-04-14 1 views
0

Je développe une application en C# et utilise Azure. J'ai remarqué que lorsque j'essaye de charger beaucoup de blobs, certaines requêtes prennent ~ 2 min. Habituellement, le temps de téléchargement est de 1 à 15 secondes. La chose étrange est, que les demandes peuvent prendre 1-15 sec ou 2 min (il n'est jamais 30 sec, ou 1 min etc.). Pour moi, il semble qu'Azure ait une sorte de mécanisme d'étranglement ou de ré-essai, mais je ne suis pas sûr.2 min de retard sur le téléchargement des blobs Azure

Qu'est-ce qui cause des retards de 2 min? Comment éviter de tels retards?

CloudBlockBlob blob = this.GetBlobReference(key);  
using(var msGet = new MemoryStream()) 
{ 
    await this._ap.Do(() => 
    { 
     var downloadToStreamAsync = blob.DownloadToStreamAsync(msGet); 
     return downloadToStreamAsync; 
    }).ConfigureAwait(false); 
} 
+2

Peut être utile https://docs.microsoft.com/en-us/azure/storage/storage-performance-checklist#subheading16 https://docs.microsoft.com/fr-fr/azure/storage/storage-scalability-targets https://blogs.msdn.microsoft.com/mast/2014/08/02/how-to-monitor-for-storage-account-throttling/ – Lanorkin

+0

@Lanorkin merci pour utile links +1 – burzhuy

+0

Je n'ai jamais vu ça. Nous vous recommandons d'essayer le même téléchargement en utilisant l'outil azcopy et de comparer les résultats. Cela devrait vous aider à isoler si c'est la limitation Azure ou pourrait être quelque chose lié au code. https://docs.microsoft.com/en-us/azure/storage/storage-use-azcopy – codingoutloud

Répondre

0

Cela ressemble à un problème Azure. https://github.com/Azure/azure-webjobs-sdk-script/issues/298

Actuellement, il y a un court délai d'inactivité sur les applications de fonction, donc s'ils ne reçoivent pas les demandes de 5 minutes, la requête suivante provoque un démarrage à froid qui prend plus de temps. Nous cherchons à augmenter ce délai, ce qui rendra la situation beaucoup moins commune.

Et il semble que la seule solution consiste à garder le serveur au chaud. Je pense qu'il sera en mesure d'exécuter un service qui fera 1 appel au stockage azur en 3 minutes. Pour éviter démarrage à froid

+0

Donc, pour être clair, cela n'a rien à voir avec Azure Storage. Ceci est spécifique aux applications Web (quelque chose que vous n'avez pas mentionné, que ce soit dans votre question ou dans votre tag). –

+0

C'est juste de la théorie, je ne suis pas sûr à 100%. Mais il semble similaire puisque les symptômes sont les mêmes. – burzhuy

+1

Les fonctions Azure (et Web Apps) sont spécifiques à App Services. Et le délai d'attente de 5 minutes pour les fonctions Azure est spécifique aux fonctions Azure. –