JMeter 5.6.3 & JVM....... Quand 255 Thrads ne suffisent plus

16 views
Skip to first unread message

Jean-Marie Markowski

unread,
Aug 6, 2024, 9:03:14 AMAug 6
to JMeter en français
Bonjour à tous,

J'espère que vous allez bien et que vos vacances sont pleines d'effervescence.
Je reviens vers vous avec une question relative aux threads d'une JVM.

Sur un serveur Windows 2022 sur lequel j'ai JAVA 17 , jai lu dans une documentation que j'ai à ma disposition 255 Threads pour la JVM

Pour l'exécution de mon scénario JMeter, j'ai besoin d'aller jusqu'à 600 Threads.
Est-ce que je peux lancer une ou plusieurs nouvelle session de JMeter sur le même serveur ou dois-je utiliser un ou plusieurs serveurs.

Autrement dit, est-ce que la limite des 255 Threads pour la JVM sont-ils aussi la limite pour le serveur.

Merci d'avance

Vincent Daburon

unread,
Aug 7, 2024, 4:36:38 AMAug 7
to JMeter en français
Bonjour,
Sur les environnements Linux, des limites systèmes sont imposés par le fichier /etc/security/limits.conf
Ces limites par défaut ne sont pas adaptées aux tests de performance avec un forte charge.
Je modifie les valeurs pour le compte linux (login) afin d'ajouter principalement plus de connexions ou de fichiers ouverts de processus.
Dans cet exemple le login ou le compte user qui fait tourner les applications est appl1.
Les valeurs par défaut sont 1024 pour nproc et nofile.

vi /etc/security/limits.conf

appli1             hard    nproc     16384

appli1             soft    nproc     16384

appli1             hard    nofile    16384

appli1             soft    nofile    16384


Je crains que les limitations sur le serveur Windows (255 Threads) correspondent au nproc (nombre de processus) sous Linux.


Tu peux faire un simple test avec un dummy sampler et une attente longue exemple 30 sec ou 60 sec afin que les threads tournent en //

Tu fais un tir à 200 threads puis 300 threads puis 400 threads ...
Et tu regardes si tu as des erreurs lors de la création des nombreux threads.

Cordialement

Vincent DAB.

Jean-Marie Markowski

unread,
Aug 8, 2024, 5:17:52 AMAug 8
to jmet...@googlegroups.com

Bonjour Vincent,

Merci pour l’information.

En ce qui me concerne, ma situation est un peu différente car je travaille sur un serveur Windows 2022.

En effectuant un test, je me suis rendu compte que j'avais besoin de 600 threads, mais je me suis heurté à une limite de 255 threads dont je ne connaissais pas la cause.

Après quelques recherches, j'ai trouvé cet article : Ultimate Guide to Java Virtual Threads.

Étant donné que j'atteins cette limite de la JVM, je me demande si elle est liée aux capacités du serveur.

Je réfléchis donc à l'opportunité de lancer une session supplémentaire de JMeter sur le même serveur ou bien d'ajouter un nouveau serveur.

Merci d'avance




--
Vous recevez ce message, car vous êtes abonné à un sujet dans le groupe Google Groupes "JMeter en français".
Pour vous désabonner de ce sujet, visitez le site https://groups.google.com/d/topic/jmeter-fr/YJ_Tu_1D5Bc/unsubscribe.
Pour vous désabonner de ce groupe et de tous ses sujets, envoyez un e-mail à l'adresse jmeter-fr+...@googlegroups.com.
Cette discussion peut être lue sur le Web à l'adresse https://groups.google.com/d/msgid/jmeter-fr/e3a4d9f0-d141-48fe-9d5a-6e5eabe5583fn%40googlegroups.com.

Vincent Daburon

unread,
Aug 9, 2024, 3:35:26 AMAug 9
to JMeter en français
Une question : 
Est ce que la limite du nombre de threads est limité pour : 
-1)  un programme (java avec JMeter) ou 
-2)  un compte utilisateur (login)

Dans le 1er cas, tu peux lancer 2 ou 3 instances de JMeter Server sur cette même machine et une charge distribuée
Dans le 2ème cas, il faut avec plusieurs comptes (login) différents et lancer plusieurs JMeter avec des comptes différents ce qui est plus compliqué.

Sinon plusieurs machines ou VMs sont nécessaires mais la limite de 255 threads me semble vraiment petit sur un serveur Windows.

Vincent DAB.

Philippe Mouawad

unread,
Aug 9, 2024, 6:22:30 AMAug 9
to jmet...@googlegroups.com
Bonjour,
Cette limite extrêmement faible me paraît étrange, quelle erreur obtenez vous quand elle survient ?

Est-ce un os 32 ou 64 bits ?

Merci 

Cordialement.
Philippe M.




--
Vous recevez ce message, car vous êtes abonné au groupe Google Groupes "JMeter en français".
Pour vous désabonner de ce groupe et ne plus recevoir d'e-mails le concernant, envoyez un e-mail à l'adresse jmeter-fr+...@googlegroups.com.
Cette discussion peut être lue sur le Web à l'adresse https://groups.google.com/d/msgid/jmeter-fr/f5a435db-c226-4b5e-acb1-015025cd28c1n%40googlegroups.com.

Milamber

unread,
Aug 10, 2024, 4:38:33 AMAug 10
to jmet...@googlegroups.com
Salut,

D'après ce que je lis sur Internet, il n'y a pas de limite du nombre de threads (natifs et non java) sur Windows. C'est essentiellement la mémoire qui est le facteur limitant (pour la stack).

Idem, il n'y a pas de limite dans les threads java (d'après ce que je lis). Le framework évoqué (ForkJoinPool) dans l'article Ultimate Guide to Java Virtual Threads fait référence à des VirtualThreads qui sont une implémentation avec une approche différente de  java.lang.Thread (dont l'article dit bien qu'ils (les threads normaux Java) consomment la mémoire très vite quand on a bcp de threads).

Tout cela pour dire que j'ai déjà fait des tests JMeter dans la passé sur des Windows (et Linux) avec plus de 255 threads (VU) sans limite autre que le Xmx à augmenter. Ce n'était pas en java17 (mais plutôt Java8).

Et bien entendu en 64 bits (cela fait longtemps que je ne vois plus d'OS 32 bits avec sa limitation d'espace d'adressage mémoire.

A mon avis, fait un test simple comme Vincent le suggère, sur ton Windows et tu devrais voir que cela passe. (je n'ai pas de Windows Server sous la main actuellement)

Cordialement,
Bruno
Reply all
Reply to author
Forward
0 new messages