OVH Cloud OVH Cloud

Utilisation de l'hyperthreading sous linux

1 réponse
Avatar
Trognon Patrice
Bonjour à tous,

Nous utilisons l'hyperthreading sur un kernel 2.4 sous linux
et a l'exploitation nous constatons que mysql créé beaucoup
de process, (chaque process faisant 30 mo, est ce qu'il monte
la base en mémoire ca c'est une autre question), ainsi que
notre démon développé en Java.

Le démon en question créé 3 threads, la machine est une
BiPro Xeon, avec kernel 2.4 option d'hyperthreading activée.

Je me retrouve avec une quinzaine de process java, chaque
process consommant 20 mo j'ai donc une consommation mémoire
très importante.

Si je lance la meme application sur un linux 2.4 SANS
l'hyperthreading, je retrouve bien un seul process de 20mo,
les threads étant gérés (très bien du reste) par la JVM.

Voici la question maintenant que le problème est posé.

Question :

L'option d'hyperthreading est elle bien gérée par le
kernel 2.4 ou faut il mieux attendre le 2.6 pour
l'utiliser ?

Pourquoi cette option me créé autant de process,
chaque process utilisant 20 mo de RAM ?

J'aurais tendance a penser que 3 threads * 2 processeurs
me donne 6 thread/process par l'hyperthreading, pourquoi
donc est ce plus du double ?

Bref, si quelqu'un ici a déjà expérimenté l'hyperthreading
en 2.4, son retour sur expérience m'interesse.

Bien Cordialement,

Patrice Trognon
http://www.javadevel.com

1 réponse

Avatar
no_spam
On Tue, 10 Feb 2004 09:47:45 +0100, Trognon Patrice wrote:

Bonjour à tous,

Nous utilisons l'hyperthreading sur un kernel 2.4 sous linux
...

Je me retrouve avec une quinzaine de process java, chaque
process consommant 20 mo j'ai donc une consommation mémoire
très importante.


Est-ce qu'ils consoment réellement 20 Mo chacun ? C'est douteux:
il faudrait regarder les champs RSS (résident size) et la shared
mémory... La mémoire réellement consomée ne sera jamais plus
grande que la différence des deux. Et je ne sais pas si le code
est compté en shared memory (il est partagé...).

Si je lance la meme application sur un linux 2.4 SANS
l'hyperthreading, je retrouve bien un seul process de 20mo,
les threads étant gérés (très bien du reste) par la JVM.


Est-ce sur ?
Il faut vérifier en utilisant ps -m ou ps H
pour être sur de voir tous les threads...

L'option d'hyperthreading est elle bien gérée par le
kernel 2.4 ou faut il mieux attendre le 2.6 pour
l'utiliser ?


L'hyperthreading, vu de l'OS, est du SMP. A partir du moment
ou il est actif, le noyau 2.4 saura le gérer...

Pourquoi cette option me créé autant de process,
chaque process utilisant 20 mo de RAM ?


Je pense que le nombre de threads crées est toujours le même,
et que c'est un effet de bord qui montre ou pas par défaut
les threads crées...
Sinon, c'est un effet de bord de l'application qui se lance deux
fois (?), mais ça me semble très douteux...