|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Candidat au titre de Membre du Club
![]() Inscription : avril 2003 Messages : 50 ![]() |
Bonjour,
Je fais des tests d'insert par une procedure stockées, sur un octo processeur. Mon but étant de visualiser l'apport du nombre de processeur pour la vitesse d'exécution des requetes. Ces inserts se font sur une table non partitionnées APL. Je simule 40 utilisateurs qui lancent chacun 3000 appels à la procédure. J'effectue le test sur un processeur, puis 2, puis 3 etc jusqu'à 8. voilà mes résultats : 1 : 887 requetes/s 2 : 870 3 : 1164 4 : 1187 5 : 1164 6 : 1114 7 : 1065 8 : 960 Utilisé 8 processeurs donne de moins bon résultats que 3 et l'accroissement des performances en fonction du nombre de processeur n'est pas énorme. Est-ce normal? |
|
|
00
|
|
|
#2 |
![]() ![]() |
Oui.
On part generalement du principe de ne pas ajouter d'engine tant qu'elles en passent aps toutes la barre des 80% avec sp_sysmon. Il faut avoir en tete que le multiprocessoring genere un gros overhead l'optimiseur, par exemple, va calculer plus de choses avec toutes les options qui s'offrent a lui avec le parallelisme. Donc lorsque ce n'est pas necessaire, l'overhead influence negativement les perfs. Il n'y a pas que le CPU qui travaille : il y a aussi la RAM, le reseau, les disques... Au moment ou tu debloque tout au niveau du CPU, tu peux alors deplacer les goulets sur les autres composants. Dans certains cas de bord, ca peut devenir carrement pejorant. Ce comportement est l'une des raisons qui a pousse Sybase a permettre l'activation et la desactivation des engines en ligne depuis la version 12.5.0.3. N'oublies pas que le parallelisme est surtout efficace en DSS (gros selects) qu'en OLTP (inserts/updates). Dans ton cas, c'est peut-etre le partitionnement qui pourrait apporter un plus. Dans ton exemple (et ta config actuelle, tu peux voir que l'optimum se situe a 4 engines. Mais ton test est-il le mirroir de ta production ? Pour la petite histoire, Oracle avait "attaque" en disant que Sybase ASE ne gerait pas le MPP car avec 64 CPUs, les perf etaient moins bonnes qu'eux. Apres analyse, il s'etait avere que sur l'architecture testee, ASE avec 16 engines battaient allegrement Oracle utiisant les 64 processeurs... mais c'est de bonne guerre... et cela demontre une fois de plus que les test TPC, c'est pas toujours parlant en prod... |
|
|
00
|
|
|
#3 |
|
Candidat au titre de Membre du Club
![]() Inscription : avril 2003 Messages : 50 ![]() |
En clair, si je ne fais pas que des "gros select" en prod, une machine multi processeurs ne sert à rien !
|
|
|
00
|
|
|
#4 |
![]() ![]() |
Non, c'est l'inverse !
- Le parallelisme aide aux gros selects (DSS/decisionnel) - Le partitionnement limite certains goulet lors de gros inserts (OLTP) et booste le parallelisme (scan parallel degree) |
|
|
00
|
|
|
#5 |
|
Candidat au titre de Membre du Club
![]() Inscription : avril 2003 Messages : 50 ![]() |
C'est ce que je disais
Le partitionnement peut vraimens booster les inserts et les updates? Quel pourcentage? En fin ce que je remarque c'est est-ce que le rapport nb processeur/performance est il vraiment rentable? Bref est-ce que cela vaut le coup d'acheter un octo-processeur plutôt qu'un bi-pro où un quadri-pro? |
|
|
00
|
|
|
#6 |
![]() ![]() |
Comme je l'ai dit, c'est un tout. On ne peux pas etre si categorique en perf & tuning.Il faut voir ou sont les goulets pour les resoudres.
Parfois, l'octoprocesseur est limite, parfois il est surdimensionne. L'essentiel c'est que ta machine colle a tes besoins. Je sais que c'est pas si simple d'obtenir un serveur et on a tendance a gonfler la machine pour les budgets. Histoire de voir, affiche-moi un sp_showplan "00:01:00" de ta machine en prod, et je te dirai peut-etre ou ca bloque... et je ferai de la decoupe de ce qui n'est pas interessant pour ne pas bourrer le forum avec 1 post monstrueux... |
|
|
00
|
|
|
#7 |
|
Candidat au titre de Membre du Club
![]() Inscription : avril 2003 Messages : 50 ![]() |
tu veux plutôt dire un sp_sysmon "00:01:00", non?
|
|
|
00
|
|
|
#8 |
![]() ![]() |
C'est pas ce que je disais ?
Autant pour moi ! Oui, sp_sysmon avec un temps adapte a ton environnement |
|
|
00
|
|
|
#9 |
|
Candidat au titre de Membre du Club
![]() Inscription : avril 2003 Messages : 50 ![]() |
je te l'envoie par mail où je crée le plus gros post du forum developpez.com ?
|
|
|
00
|
|
|
#10 | ||||||||
![]() ![]() |
Resume de l'output de ton sp_sysmon
Code :
Code :
Alors la, il y a un gros probleme. D'habitude, on s'inquiete quand on depasse les 25% ! Ton reseau est sans doute mal configure Retourne-moi l'output de:Code :
Code :
Cree un cache specifique pour tempdb. Supprime le cache de 8K dans le default data cache Dans les caches tempdb et default, considere des buffer pools de 80% a 2K et de 20% a 16K. Pas d 8K ni de 4K si les pages de log sont dissociees et liees au log cache avec buffer pool de 4K. Verifie la taille du ULC via sp_configure "user log cache". Si tu utilises des pages de 2K, il devrait etre a 2048. |
||||||||
|
|
00
|
|
|
#11 | ||
|
Candidat au titre de Membre du Club
![]() Inscription : avril 2003 Messages : 50 ![]() |
voilà :
Code :
|
||
|
|
00
|
|
|
#12 | ||
![]() ![]() |
Si tu travailles avec de l'Ethernet (dont les paquets sont de 1500), essaie l' option suivante:
Code :
|
||
|
|
00
|
|
|
#13 | |
|
Candidat au titre de Membre du Club
![]() Inscription : avril 2003 Messages : 50 ![]() |
oui j'avais bien un problème réseau, avant de recommencer mes tests, pourrais-tu m'eclaircir ce passage?
Citation:
|
|
|
|
00
|
|
|
#14 |
![]() ![]() |
http://download.sybase.com/pdfdocs/asg1250f/perf1.pdf
Chapitre 14 (dès page 325) Que veux-tu exactement savoir ? |
|
|
00
|
|
|
#15 |
|
Candidat au titre de Membre du Club
![]() Inscription : avril 2003 Messages : 50 ![]() |
bon j'ai essayé de faire comme tu m'as dis mais le problème c'est que mon moteur a par défault des pages de 8k et donc je ne peux pas créer des caches de 4k ou 2k. j'ai donc créé le caches comme tu m'as dis mais avec 8k à la place des 4k et 2k.
les performances n'ont pas vraimens changé... |
|
|
00
|
|
|
#16 |
![]() ![]() |
Desole. Mes commentaire sur les caches partaient d'un serveur a pages de 2K.
Pour du 8K, cache dissocie pour tempdb_cache et log_cache Log_cache => qu'un buffer pool de 8K Pour tempdb_cache et default data cache => un mixte de 8 et 16. Vous etes vraiment dans un environement purement decisionnel ? Pourquoi avoir pris la decision du 8K ? et en APL ? J'imagine alors les problemes de verrous... |
|
|
00
|
|
|
#17 |
|
Candidat au titre de Membre du Club
![]() Inscription : avril 2003 Messages : 50 ![]() |
Bref,
je me rends compte que j'ai configuré un moteur pour faire du décisionnel, alors que je fais plutôt du transactionnel avec un petit volume de donnée. d'où mes performances un peu décevantes. mais bon n'ayant plus beaucoup temps pour mon stage, je m'attaque à la mise en place de l'architecture "cluster" avec repli la semaine prochaine. |
|
|
00
|
|
|
#18 |
![]() ![]() |
On peut clore ?
|
|
|
00
|
|
|
#19 |
|
Candidat au titre de Membre du Club
![]() Inscription : avril 2003 Messages : 50 ![]() |
Il me semble bien que c'est la fin de ce sujet!
merci beaucoup pour ses renseignements qui ont apporté des réponses à mes intérrogations! |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com