web-dev-qa-db-fra.com

Comment les threads et le nombre d’itérations ont-ils un impact sur le test et quelle est la valeur maximale de JMeter? limite de fil

  1. Pourriez-vous s'il vous plaît me dire la limite maximale de non. des threads que je peux utiliser dans JMeter 2.4 pour effectuer un test de charge?

  2. Y at-il une différence en prenant tous les threads dans une seule boucle ou en prenant pas moins. des threads et initialiser la boucle pour obtenir le même pas. des utilisateurs/threads?

Exemple:

No. of threads=500
Ramp up=1000
Loop=1 

si c'est pareil que 

No. of threads=50
Ramp up=100
Loop=10

ou y a-t-il une différence en terme de résultat? 

28
Parvez
  1. Le nombre maximal de threads est déterminé par de nombreux facteurs. Voir la réponse ci-dessous https://stackoverflow.com/a/11922239/460802

  2. Il y a une grande différence dans ce que vous proposez. 

    • "500 threads, Loop 1" signifie 500 threads AT THE MEME HEURE effectuant la boucle UNE FOIS.
    • "50 threads, loop 10" signifie que seulement 50 threads AT EN MÊME TEMPS effectuent la boucle TEN TIMES.

En théorie, vous obtenez le même nombre de résultats (500), mais vous frappez le serveur d'une manière très différente.

21
BlackGaff

Le nombre maximum d'utilisateurs dépend de votre système d'exploitation, de la mémoire libre RAM et de la connexion. Win XP est limité à 3000 processus en même temps. Sur Linux, il y en a plus de 3000 mais je ne sais pas combien. Veillez à tester le serveur et si vous démarrez 3000 threads sur votre ordinateur, vous aurez besoin de beaucoup de ressources et le test ne sera pas réel. Je préfère que le tarif démarre à partir de 300 utilisateurs maximum par machine. Si vous souhaitez augmenter le nombre d'utilisateurs plutôt que d'utiliser des tests distribués (utilisez plus de machines que les attaques par déni de service) ......... En théorie, le même nombre de demandes est identique, mais la complexité temporelle n'est pas la même.

9
Ballon

1: Bien sûr, cela dépend beaucoup de la machine sous JMeter, mais si le kilométrage compte, je peux vous donner quelques conseils. JMeter vous permet d'exécuter plusieurs processus dans la même boîte, et il est généralement assez fiable de générer jusqu'à 200 threads par instance JMeter. Si vous avez besoin de plus que cela, je vous recommande d'utiliser plusieurs instances de JMeter. Une machine moderne avec quelques modifications peut facilement générer entre 500 et 1000 threads. Si vous utilisez Linux, vous devez probablement augmenter le nombre maximal de descripteurs de fichier ( voir ici ).

Il est très utile d’exécuter JMeter sans interface graphique, en écrivant des données de rapport/graphique dans un fichier pour un rendu ultérieur. Vous devez également faire attention à vos limites en matière de réseau. Il serait facile pour un serveur d’un réseau Gbps de générer des milliers de demandes, mais un ordinateur portable partageant un routeur à 54 Mbps serait beaucoup plus limité. Essayez de diviser votre connexion réelle au serveur par la taille des demandes et vous saurez alors si la bande passante vous limitera. Faites particulièrement attention à la configuration de JMeter pour télécharger ou non les fichiers référencés dans une réponse HTML.

J'espère que j'ai pu aider.

2: C’est précisément ce que BlackGaff a expliqué: "500 threads, Loop 1" signifie 500 threads AT LA MÊME FOIS effectuant la boucle UNE FOIS . "50 threads, loop 10" signifie seulement 50 threads AT LE MÊME MOMENT de faire la boucle DIX FOIS.

5
blpsilva

Il n'y a aucune limite sur l'exécution du thread dans Jmeter. Depuis son outil basé sur Java, il utilise les fonctionnalités de thread Java. En cas d'exécution simultanée de threads, nous devons prendre en charge la configuration de la machine (c'est-à-dire la taille de la mémoire et le processeur).

Pour éviter le problème OutOfMemory, essayez d'exécuter jmeter en mode NON-GUI avec des arguments d'exécution Java personnalisés dans le script jmeter dans Apache-jmeter/bin/jmeter ..____. La valeur par défaut est 512 Mo.

1
Harit Kumar
  1. Je ne pense pas qu'il y ait une limite de threads sur JMeter lui-même si votre machine peut le gérer. L'idée de base des tests devrait être que, le changement de thread et le temps d'attente ne doivent pas trop affecter les métriques de performances réelles.

  2. Il y a une énorme différence entre les deux cas. Dans le premier cas, pire scénario, vous aurez 500 utilisateurs simultanés. Dans le second cas, le nombre maximal d'utilisateurs simultanés sera de 50. La durée moyenne du scénario 1 sera supérieure à celle du scénario 2.

0
Rajan