Multithreading vs multiprocessing hardware

Fermé
Signaler
-
 crazytoon -
Bonjour,
Dans une architecture 3 tiers orientée web, nous avons des backends supportant des produits java. (Sous redhat entreprise 3, kernel 2.4.21elsmp)
Ces serveurs vont recevoir des processeurs dualcore de dernière génération, afin d'optimiser les performances
J'aurais aimé profiter du vécu ou des connaissances de certains d'entre vous, afin de savoir quel serait l'intérêt, ou le peu d'intérêt, éventuellement :) d'activer le multithreading hardware au niveau de ces machines (activation bios).
Java travaille en natif en mulltithreading, il me semble, et je pense qu'il serait profitable de l'activer, mais j'avais envie de mener une petite étude préalable dessus.
Merci par avance pour vos réponse! :)

Emeric

4 réponses

Bonjour,

Le multithreading a surtout de l'intérêt pour les étapes à courte constante de temps.

Dans une architecture trois tiers il faut l'utiliser au premier tiers (interactivité réactive). En troisième tiers on a des calculs et des accès aux bases de données qui sont plus longs et qu'il faut souvent sérialiser (surtout pour les bases de données dynamiques). Le multithreading a moins d'intérêt.

La différence de comportement entre premier et dernier tiers conduit aussi à déconseiller des les mettre sur une même machine. Les optimisations ne sont pas les mêmes.

Bien sûr ça dépend beaucoup des caractéristiques des applications.

Manu
Hi, et merci pour cette réponse.
Notre architecture nous permet une séparation ferme des applications. frontaux sur une barre de machines, moteurs java (enhydra) sur une autre, et bases de données sur un cluster sybase (+ des interrogations de flux en temps réel sur des vips-repartiteurs de charge-)
Les back-end assemblent les pages grace au mod_perl, generant tout ce qui est graphique et assimilé par l'intermédiaire de servlet java.
Etant donné l'activité sur ces back-ends, il me semblait intéressant d'activer ce support multithreat materiel, afin de le combiner avec le fait que nous avons désormais du bi-pro dualcore... (optims...)
Ca a l'air de coller ? :)
Rebonjour,

Si je comprends bien, ce que vous appelez backend, c'est à la fois le deuxième tiers (assemblage de pages, servlet Java) et le troisième tiers (Sybase). Si vous voulez des performances, ce n'est pas conseillé d'avoir des machines qui fassent les deux (je ne suis pas sûr d'avoir compris votre description, j'ai peut-être mal interprété).

En tout état de cause, vous ne gagnerez pas beaucoup en multithreadant au troisième tiers, vous allez perturber l'ordonnancement déjà bien fait par Sybase. Vous gagnerez plus en deuxième tiers, et encore plus en premier tiers.

Je dis cela dans un cas général, mais il faut vérifier dans votre cas particulier.

Manu
Hi :)
Non, nos backends ne supportent que les moteurs applicatifs java, les bases de données étant localisées sur un cluster externe, et les flux temps réels sur des vips externes.
En l'occurence, si je suis votre réflexion, il pourrait être intéressant de jouer avec le mutlithreading au deuxième tier, qui est la question originelle... :)
Quoi qu'il en soit, il me semble que des tests d'imposent :)
Merci beaucoup pour vos réponse et bonne journée
Emeric