2017-09-21 2 views
0

Bien que les tests de charge/performance de l'API sur ELB dans AWS en utilisant JMeter, je vois
nuage AWS montre Latency metric = 10 ms (semble bien) et dans le rapport sommaire de JMeter Average metric = 3000 ms (semble mauvais).AWS montre nuage « Latence » métrique métrique et jmeter « moyenne » dans le rapport de synthèse pour les tests de performance api

L'API renvoie 1 Mo de données JSON, mais je ne comprends pas pourquoi il y a tellement de différences dans les nombres et cette performance API est-elle acceptable? Si le SLA indique avoir un temps de réponse API de 100 ms.

+0

S'il vous plaît préciser exactement ce que vous parlez. Vous avez mentionné ELB (Elastic Load Balancer) mais il semble que vous parliez d'API Gateway. Quel est le SLA 100 ms auquel vous faites référence? Que suggèrent les horodatages dans vos journaux? –

Répondre

0

Vous êtes à la recherche dans différents paramètres:

  • Latence: JMeter measures the latency from just before sending the request to just after the first response has been received.
  • temps écoulé: JMeter mesure le temps écoulé depuis juste avant d'envoyer la requête juste après la dernière réponse a été reçue .

Alors Latence est inclus dans le temps de réponse, il est soi-disant Time To First Byte et le temps écoulé est le Time to Last Byte. Je m'attends à ce que vous vous en teniez à ce que rapporte JMeter pour ne pas être confondu avec les métriques provenant de différentes sources, JMeter est au moins open source donc vous avez la confiance sur la façon dont les métriques sont calculées.

Si le temps de réponse de 3 secondes est trop élevé, vous pouvez commencer à chercher les raisons de ce qui pourrait être:

  1. Votre serveur API est simplement surchargé, consultez CPU, RAM, réseau, l'utilisation du disque à l'aide c'est-à-dire Amazon CloudWatch ou JMeter PerfMon Plugin
  2. Votre configuration d'application n'est peut-être pas prête pour des charges élevées. La majorité des paramètres par défaut des serveurs Web/d'application/de base de données ne conviennent qu'au développement d'applications et au débogage (il en va de même pour JMeter). Il est donc très probable que vous ayez besoin d'optimiser l'infrastructure.
  3. Votre application utilise des algorithmes non-optimaux. Utilisez profiler tools pour inspecter où il passe le temps, quelles sont les méthodes les plus lourdes, combien de temps les appels de base de données durent, etc.
  4. Aussi si votre application est derrière l'ELB JMeter peut mettre en cache l'adresse IP d'un des nœuds d'entrée et tous vos les demandes ne toucheront qu'un seul hôte. Pour éviter cette situation, ajoutez DNS Cache Manager à votre plan de test.

Références: