|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Candidat au titre de Membre du Club
![]() Inscription : avril 2003 Messages : 50 ![]() |
J'ai un serveur ASE 12.5 installé sur un quadri-processeur (WIN 2000 ADS). Je le fais stresser avec des appels de procedures stockées mais un seul processeur travail et donc la charge processeur total ne dépasse pas les 25 %. Il y a t-il un moyen de faire travailler tous les processeurs?
|
|
|
00
|
|
|
#2 |
![]() ![]() |
... mais si la charge CPU ne depasse jamais le 80%, c'est pas du cote CPU que tu devrais chercher.
Lors de l'appel des procs, executes un sp_sysmon |
|
|
00
|
|
|
#3 |
|
Candidat au titre de Membre du Club
![]() Inscription : avril 2003 Messages : 50 ![]() |
J'ai essayé cette commande mais le problème si j'ai bien compris c'est que c'est pour faire tourner 3 moteurs ASE en parallèle. Cependant j'ai qu'un seul moteur et qu'une seule base. Un moteur ne peut tourner que sur un seul processeur?
|
|
|
00
|
|
|
#4 |
![]() ![]() |
Lors du démarrage, c'est l'OS qui définit où placer ses moteurs. Toi, ne t'occupe de rien : tu gères ces 3 exécutables comme un seul. Les échanges se feront par mémoire partagée. Partant de là, tu auras alors 3 running queues, donc la capacité pour l'ASE d'exécuter 3 tâches CPU en même temps (donc d'utiliser 3 CPUs)... c'est ce qui t'intéresse, non ? Après ça, tu peux en plus définir du parallélisme avec max parallel degree, max scan parallel degree , etc
|
|
|
00
|
|
|
#5 |
|
Candidat au titre de Membre du Club
![]() Inscription : avril 2003 Messages : 50 ![]() |
Oui mais j'ai qu'un seul moteur ASE avec une seule base à l'intérieur.
Les 3 running queues ne vont pas travailler sur le même moteur? Bref j'ai un moteur, combien de cpu pourront travailler en même temps sur ce moteur? Moi d'après ce que j'ai compris : un seul cpu par moteur au maximum. par contre si j'avais 3 moteurs (mais que je n'ai pas) je pourrais les faire travailler en parallèle sur des cpus différents. |
|
|
00
|
|
|
#6 |
![]() ![]() |
Distingue bien moteurs (je pense que tu entends par la serveur ASE) et engines.
Pour ton cas de figure : 1 ASE et 4 CPUs, tu obtiendras sans doute de meilleures performances en utilisant 3 engines pour ton serveur ASE. Dan ce cas, tu pourras voir via showserver 3 dataservers sur ta machine, mais virtuellement, tu n'y accederas que via ton serveur (surtout pour les requetes de type gros selects que l'on rencontre dans le decisionnel). L'avantage du parallelisme peut se faire sentir meme en monotache (1 utilisateur). Si tu lances un select sur une table partitionnee en 4, par exemple, l'ASE sera en mesure de lancer 3 worker processes qui chacun utilisera peut-etre son propre CPU pour parcourrir chacun une portion de la table. Dans ce cas: - ton max online engine devra etre a 3 pour avoir 3 running queues - ton parallel degree devra etre a 3 pour profiter des 3 CPUs va une requete - ton max scan parallel degree devra etre a 4 (pour le partitionnement) - ton number of woker process devra etre au minimum a 12 (3*4) pour ne pas pejorer ton plan d'execution. |
|
|
00
|
|
|
#7 |
|
Candidat au titre de Membre du Club
![]() Inscription : avril 2003 Messages : 50 ![]() |
Merci, ca marche!!!!
C'est vrai je ne voyais pas la différence entre moteur et engine. Il y avait aussi le paramètre : "number of engine at start up" à modifier. Ayant des performances pas assez satisfaisantes, je me tourne donc comme tu me le dis vers le partitionnement des tables pour augmenter le parallèlisme. |
|
|
00
|
|
|
#8 |
![]() ![]() |
number of engine at startup est un nouveau parametre depuis 12.5.0.3 si je ne m'abuse. Cela vient compte tenu qu'il est possible maintenant de désactiver dynamiquement une engine (sans redemarrage du serveur).
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com