Test de performance JMeter - Application de la loi de Little dans le modèle de charge de travail

Jmeter Performance Test Application Littles Law Workload Model



La loi de Little devrait être l’une des théories les plus connues sur les files d’attente! Voyons comment l'utiliser pour les tests de performances.

La loi de Little

Le nombre moyen à long terme de clients (N) dans un système stable est égal au taux d'arrivée effectif moyen à long terme (λ) multiplié par le temps moyen passé par les clients dans le système (W) il peut être exprimé sous forme algébrique expression: N = λW.



La loi de Little est universellement applicable et peut être appliquée partout où il y a une file d'attente, des magasins de vente au détail aux serveurs CPU / d'applications.
Supposons que les utilisateurs au guichet passent en moyenne 15 minutes (W) et que les clients arrivent à un taux de 20 clients par heure (λ), et supposons que tout le monde achète des billets.




En utilisant la loi de Little, nous pouvons calculer le nombre moyen de clients dans le système à tout moment comme N = λW
λ = 20 / heure
DANS = 15 min = 0,25 heure
donc, N Est 5 = (0,25 * 20)



Bien que l'on puisse s'attendre à 20 clients par heure, car les clients ne passent que 15 minutes au comptoir, il n'y a que 5 clients dans le système, il y en a 4 dans la file d'attente et 1 est en maintenance.

Tarif arrivée:

Le taux auquel les clients entrent dans le système s'appelle le taux d'arrivée.

Taux de sortie:

Le taux auquel les clients quittent le système est appelé taux de sortie.



La loi de Little suppose que le système est stable, de sorte que le taux d'arrivée et le taux de départ sont les mêmes.

La loi de Little dans les tests de performance:

La loi de Little peut également être appliquée à nos serveurs Web / APP / base de données pour corréler le nombre total d'utilisateurs / requêtes, le débit du serveur (TP) et le temps de réponse moyen.

Débit ------ est le nombre de demandes traitées par unité de temps, il peut être utilisé comme taux de sortie (λ).

Temps de réponse ------ Le temps de réponse moyen est le temps passé par la requête dans le système (W). Il comprend le temps d'attente + le temps de service.

N = Débit * Temps de réponse (N = Débit * Temps de réponse)


Le temps de réflexion affecte le débit du système. Donc, s'il y a un temps de réflexion:

N = débit * (temps de réponse + temps de réflexion)

Vérification des résultats du test de performance:

Regardons quelques exemples pour comprendre pourquoi la loi de Little peut être utilisée pour vérifier les résultats de notre exécution de test de performance.

  • Dans notre serveur tomcat, la mise à jour du nombre maximum de threads dans le pool de threads dans server.xml ne peut gérer que 10 concurrents. S'il dépasse 10, il attendra en ligne. Voyons comment appliquer la loi de Little ici.

  • Je veux également contrôler le temps de réponse, mettre à jour le fichier hello.jsp dans l'exemple tomcat et ajouter un affichage pour attendre 2000 millisecondes - tomcat a besoin de 2 secondes pour traiter cette demande et répondre.

Maintenant, nous savons que chaque requête à la page prendra 2 secondes à traiter, et nous savons également qu'il n'y a que 10 threads dans le pool.
Par conséquent, tomcat peut traiter 10 requêtes en 2 secondes et nous limitons le débit du serveur de tomcat à (10/2 =) 5 requêtes / sec

  • J'ai créé un test simple avec 10 utilisateurs simultanés pour accéder à la page et l'ai testé pendant un certain temps.


    Selon les résultats récapitulatifs ci-dessus de JMeter:
    Le temps de réponse moyen (W) est 2009 ms
    Le débit (λ) est 5 secondes
    Par conséquent, le nombre d'utilisateurs dans le système N

    1N = Throughput* Response time 2N = 5 * 2.009 3N = 10.045, very close to 10
  • Cette fois, j'ai fait le même test sur 50 utilisateurs simultanés et j'ai obtenu les résultats suivants:

    1W = 9.742 seconds 2λ = 5/sec 3N = 9.742* 5 = 48.71, close to 50

    Cela confirme que le temps de réponse est synchronisé avec la charge de l'utilisateur. Comme indiqué ci-dessus, vous pouvez utiliser la loi de Little pour vérifier l'exactitude des résultats de vos tests de performance.

Mode de charge de travail:

Le modèle de charge de travail est Un ensemble de transactions commerciales exécutées par un utilisateur simultané donné dans un temps donné, utilisé pour analyser le comportement du système testé.
Le mode de charge de travail est très important dans les tests de performances. S'il ne reflète pas le mode de l'utilisateur final, les résultats de vos tests de performances sont gaspillés!

Nous ne pouvons pas créer un plan de test de performance simple qui considère aléatoirement le nombre d'utilisateurs et a un temps de réflexion arbitraire!
Afin de trouver un modèle de charge de travail approprié, vous devez fournir au moins les informations suivantes:

  • Transaction commerciale clé

  • Nombre de VUsers

  • Pourcentage d'utilisateurs opérationnels

  • Temps de réflexion

  • Débit attendu

Habituellement, les informations ci-dessus doivent être fournies par les clients / analystes commerciaux, etc. mais parfois en tant qu'ingénieur de test de performance, vous pouvez rencontrer un problème: c'est-à-dire que le client ne sait rien des exigences non fonctionnelles. Cependant, ils veulent effectuer des tests de performances, voyons comment utiliser Little's Law à l'aide d'outils Google Analytics pour arriver à un modèle de charge de travail.
Google Analytics peut nous fournir des pages fréquemment visitées, ce qui est une bonne information pour les flux de travail d'entreprise qui traitent du pourcentage d'utilisateurs impliqués dans ces pages et certaines opérations.

Calcul du débit:

Pour l'une des applications, google-analytics affiche des informations de pointe sur un certain jour de l'année.

  • 20071 utilisateurs connectés

  • 277576 pages vues
    Depuis la page vue, nous pouvons calculer le débit du serveur.
    En d'autres termes, si le serveur traite 277 576 pages par jour, il traitera 3,2 demandes de pages par seconde. (277576 / (24 * 60 * 60))

Mais ce n'est pas juste!
Google Analytics fournit également la distribution des pages vues pour la journée. Aux heures de pointe, notre serveur a traité 34 435 pages en une heure.


Par conséquent, nous pouvons utiliser cette heure de pointe pour le calcul du débit souhaité. 34435 / (60 * 60) donne 9,56 pages / s, ce qui devrait être le débit attendu.

Calcul du temps de réflexion:


Comme le montre la figure ci-dessus, une session utilisateur a duré 9 minutes et 15 secondes, soit 555 secondes.

Au cours de la session, l'utilisateur a parcouru 8,78 pages.

L'intervalle de temps entre deux pages vues est de 555 / 8,78 = 63 secondes

Temps de réponse + temps de réflexion = 63 secondes

Si nous connaissons le temps de réponse, nous pouvons ajuster le temps de réflexion en conséquence.

Calcul du nombre total d'utilisateurs:

Google Analytics montre également que pendant les heures de pointe, nous avons environ 3904 utilisateurs.


En fait, cela ne signifie pas que vous devez exécuter des tests de charge avec 3904 utilisateurs simultanés. Parce que c'est une heure d'informations agrégées.

Selon la loi de Little, Nombre total d'utilisateurs N = débit * (temps de réponse + temps de réflexion)

1 N = 9.56 * 63 2 N = 602 users

602 utilisateurs simultanés suffisent pour exécuter le test de charge.

En d'autres termes, en concevant un plan de test qui dure 9 minutes et 15 secondes et 602 utilisateurs, vous aurez 3910 utilisateurs connectés, ce qui est très proche de notre charge de travail de production actuelle.

Pour résumer:

Certains testeurs de performances peuvent savoir comment utiliser JMeter / LoadRunner ou d'autres outils pour développer un plan de test, et ils pensent que quels que soient les résultats qu'ils obtiennent, ils sont exacts. Cependant, les choses se sont retournées contre eux!
Par exemple: vos ressources système peuvent être très limitées - si vous exécutez un test JMeter contre 1000 utilisateurs simultanés, JMeter donnera certains résultats, ne supposera jamais que les résultats sont corrects et utilisera constamment la loi de Little pour vérifier vos résultats. Selon les résultats de JMeter, supposons que le débit soit de 50 / s et que le temps de réponse moyen (y compris le temps de réflexion) soit de 13 secondes.

1 N = 50 * 13 2 3 N = 650 4 5 Our expectation N should be around 1,000. So there is a problem here! !

Par conséquent, la loi de Little peut être utilisée pour garantir que les résultats de performance observés ne sont pas dus aux goulots d'étranglement causés par nos outils de génération de charge.

S'il y a une erreur, veuillez le signaler, bienvenue pour laisser un message

Articles merveilleux précédents:

Plusieurs façons de paramétrer Jmeter
Framework d'automatisation des tests de performance - Jenkins + Ant + Jmeter

La fonction JMeter ne suffit pas?Regarde moi

Le contenu de la réponse Jmeter montre des solutions déformées