Précédent   Forum des professionnels en informatique > Logiciels > Solutions d'entreprise > Business Intelligence > SAS > Outils BI
Outils BI Forum d'entraide sur les fonctionnalités spécifiquement liées à la partie Business Intelligence de SAS : DI, EG, infomaps, cubes, WRS
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 25/01/2011, 16h33   #1
Membre expérimenté
 
Inscription : avril 2009
Messages : 537
Détails du profil
Informations forums :
Inscription : avril 2009
Messages : 537
Points : 540
Points : 540
Par défaut Collecte de statistiques

Bonjour,

Je ne sais pas si vous êtes comme moi mais certaines fois on me demande "Est-ce que le server est rapide?"

Alors j'ai codé un programme qui fait toujours les même opérations afin de voir si niveau CPU, IO tout marchait bien:

Au début on construit la table qui va stocker les temps de différentes actions.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
/*---------------------------------------------------------------------
  -- Program : sastask.sas                                           --
  --                                                                 --
  -- Author : xav2229                                                --
  --                                                                 --
  -- Date : 2011/01/14                                               --
  --                                                                 --
  -- Description : Gather stats from SAS tasks                       --
  ---------------------------------------------------------------------*/
 
%put CPUCOUNT = <%sysfunc(getoption(CPUCOUNT, keyword))>;
%put MEMSIZE  = <%sysfunc(getoption(MEMSIZE, keyword))>;
%put SUMSIZE  = <%sysfunc(getoption(SUMSIZE, keyword))>;
%put SORTSIZE = <%sysfunc(getoption(SORTSIZE, keyword))>;
 
%let PSdatetime = %sysfunc(datetime());
/* Build table for gathering stats */
proc sql;
   CREATE TABLE WORK.SAS_TASK
   (PSdatetime num format = datetime22.3
   ,STAT char(32)
   ,MEASURE num    
   )
   ;
   INSERT INTO WORK.SAS_TASK
   (PSdatetime, STAT)
   VALUES(&PSdatetime, 'DATA')
   VALUES(&PSdatetime, 'MD5')
   VALUES(&PSdatetime, 'SORT')
   VALUES(&PSdatetime, 'INDEX')
   VALUES(&PSdatetime, 'SUMMARY')
   ;
quit;
Premiere stat : on compte les IO afin de voir si le disque répond bien

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
 
 
/* STAT : measuring IO in DATA step */
%let start = %sysfunc(datetime());
DATA WORK.BIG;
   length LONG $ 8000;
   do i = 1 TO 5*(10**5);
      LONG = 'X';
      aleas = time();
      mod = mod(int(aleas)*100, 3); 
      output;
   end;
run;
%let gap = %sysevalf(%sysfunc(datetime()) - &start);
%put gap = <&gap>;
 
proc sql;
   UPDATE WORK.SAS_TASK
   SET MEASURE = &gap
   WHERE STAT = 'DATA'
   ;
quit;
Ensuite un peu de calcul CPU, pas d'IO ici
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
/* STAT : DATA : measuring CPU */
%let start = %sysfunc(datetime());
DATA _NULL_;
   length LONG $ 64 BIG $ 16;
   do i = 1 TO 20**6;
      LONG = put(i, z32.) || reverse(put(i, z32.));
      BIG = put(md5(LONG), hex16.);
   end;
run;
%let gap = %sysevalf(%sysfunc(datetime()) - &start);
%put gap = <&gap>;
 
proc sql;
   UPDATE WORK.SAS_TASK
   SET MEASURE = &gap
   WHERE STAT = 'MD5'
   ;
quit;
Puis encore de l'IO avec beaucoup de données manipulées
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
/* STAT : measuring IO in SORT */
%let start = %sysfunc(datetime());
proc sort DATA=WORK.BIG;
   BY mod aleas;
run;
%let gap = %sysevalf(%sysfunc(datetime()) - &start);
%put gap = <&gap>;
 
proc sql;
   UPDATE WORK.SAS_TASK
   SET MEASURE = &gap
   WHERE STAT = 'SORT'
   ;
quit;
Encore de l'IO avec du CPU egalement
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 
/* STAT : measuring IO when creating INDEX */
%let start = %sysfunc(datetime());
proc datasets lib=WORK mt=DATA nolist;
   MODIFY BIG;
   INDEX CREATE mod;
quit;
%let gap = %sysevalf(%sysfunc(datetime()) - &start);
%put gap = <&gap>;
 
proc sql;
   UPDATE WORK.SAS_TASK
   SET MEASURE = &gap
   WHERE STAT = 'INDEX'
   ;
quit;
Puis enfin une tache d'agrégation
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 
/* STAT : measuring multi-thread in SUMMARY */
%let start = %sysfunc(datetime());
proc summary DATA=WORK.BIG;
   class mod;
   var aleas;
   output out=WORK.ZZ;
quit;
%let gap = %sysevalf(%sysfunc(datetime()) - &start);
%put gap = <&gap>;
 
proc sql;
   UPDATE WORK.SAS_TASK
   SET MEASURE = &gap
   WHERE STAT = 'SUMMARY'
   ;
quit;
Au final :
Code :
1
2
3
4
5
 
DATA _NULL_;
   SET WORK.SAS_TASK;
   put (_ALL_) (=);
run;
Mon résultat :
Code :
1
2
3
4
5
6
7
 
 
DATA	16,05
MD5	279,48
SORT	68,66
INDEX	4,10
SUMMARY	1,98
a vous !

xav
xav2229 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/01/2011, 17h36   #2
Membre chevronné
 
Avatar de steelspirit
 
Inscription : janvier 2008
Messages : 420
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : janvier 2008
Messages : 420
Points : 739
Points : 739
Envoyer un message via MSN à steelspirit
pas mal, mais pour un truc comme ça je regarde SAS ARM qui est dédié à ça :
http://support.sas.com/documentation...a003275772.htm

En fait non, comme je suis un flemmard et que je suis sous windows, j'utilise l'observateur de performance et je monitor sas.exe

http://support.sas.com/documentation...#ntperfmon.htm

Steel
steelspirit est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/01/2011, 17h37   #3
Membre Expert
 
Homme
Biostatisticien
Inscription : juin 2009
Messages : 1 143
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Irlande

Informations professionnelles :
Activité : Biostatisticien
Secteur : Industrie Pharmaceutique

Informations forums :
Inscription : juin 2009
Messages : 1 143
Points : 1 760
Points : 1 760
Et comment on peut lire la performance (ou non) du serveur? par exemple, y-a-t-il moyen de la comparer à une performance "moyenne"?
Manoutz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/01/2011, 17h45   #4
Membre expérimenté
 
Inscription : avril 2009
Messages : 537
Détails du profil
Informations forums :
Inscription : avril 2009
Messages : 537
Points : 540
Points : 540
Je veux avoir une base de référence, pour comparer.

Je ne veux pas mesurer la performance, je veux voir comment le server répond.
xav2229 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/01/2011, 20h28   #5
Rédacteur
 
Homme Stéphane
Consultant et formateur SAS et Cognos
Inscription : avril 2009
Messages : 1 791
Détails du profil
Informations personnelles :
Nom : Homme Stéphane
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Consultant et formateur SAS et Cognos
Secteur : Conseil

Informations forums :
Inscription : avril 2009
Messages : 1 791
Points : 4 012
Points : 4 012
Ah bah tiens, je regarderai chez mes différents clients. J'en ai dimensionné un avec 12 cores pour les économètres
__________________
N'oubliez pas de cliquer sur lorsque votre problème est réglé !

Moteur de recherche dans les papiers SAS
datametric est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/01/2011, 10h07   #6
Membre Expert
 
Homme
Biostatisticien
Inscription : juin 2009
Messages : 1 143
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Irlande

Informations professionnelles :
Activité : Biostatisticien
Secteur : Industrie Pharmaceutique

Informations forums :
Inscription : juin 2009
Messages : 1 143
Points : 1 760
Points : 1 760
okay. Vos résus m'intéressent, ca fera justement une base de départ.
Manoutz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/01/2011, 13h15   #7
Membre expérimenté
 
Inscription : avril 2009
Messages : 537
Détails du profil
Informations forums :
Inscription : avril 2009
Messages : 537
Points : 540
Points : 540
sur un laptop DELL D630

2 CPU
500 000 DATA 498,01
500 000 MD5 83,17
500 000 SORT 2688,27
500 000 INDEX 211,75
500 000 SUMMARY 212,79

sur un AIX
2 CPU
500 000 DATA 18,53
500 000 MD5 280,65
500 000 SORT 74,48
500 000 INDEX 8,56
500 000 SUMMARY 2,10
xav2229 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/01/2011, 09h46   #8
Rédacteur
 
Homme Stéphane
Consultant et formateur SAS et Cognos
Inscription : avril 2009
Messages : 1 791
Détails du profil
Informations personnelles :
Nom : Homme Stéphane
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Consultant et formateur SAS et Cognos
Secteur : Conseil

Informations forums :
Inscription : avril 2009
Messages : 1 791
Points : 4 012
Points : 4 012
J'ai comparer ton programme à celui que j'utilise pour tuner les serveurs pendant les audits et j'ai un point de blocage sur le principe de ton test.

Tu ne prends pas en compte les valeurs de MEMSIZE, SORTSIZE, SUMSIZE et autres options du groupe PERFORMANCE dans les options.
Cela peut faire varier les résultats notamment sur les SUMMARY et SORT.

En plus d'afficher le CPUCOUNT, il faudrait les afficher pour pouvoir correctement comparer les résultats.
__________________
N'oubliez pas de cliquer sur lorsque votre problème est réglé !

Moteur de recherche dans les papiers SAS
datametric est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/01/2011, 14h31   #9
Rédacteur
 
Homme Stéphane
Consultant et formateur SAS et Cognos
Inscription : avril 2009
Messages : 1 791
Détails du profil
Informations personnelles :
Nom : Homme Stéphane
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Consultant et formateur SAS et Cognos
Secteur : Conseil

Informations forums :
Inscription : avril 2009
Messages : 1 791
Points : 4 012
Points : 4 012
sur un serveur windows 2003


STAT=DATA MEASURE=76.35
STAT=MD5 MEASURE=160.53
STAT=SORT MEASURE=722.34
STAT=INDEX MEASURE=16
STAT=SUMMARY MEASURE=3.42

SUMSIZE=0
MEMSIZE=0
SORTSIZE=67108864
CPUCOUNT=8
__________________
N'oubliez pas de cliquer sur lorsque votre problème est réglé !

Moteur de recherche dans les papiers SAS
datametric est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/01/2011, 14h32   #10
Membre expérimenté
 
Inscription : avril 2009
Messages : 537
Détails du profil
Informations forums :
Inscription : avril 2009
Messages : 537
Points : 540
Points : 540
OK, j'ai ajouté les informations sous la forme de

Code :
1
2
3
4
%put CPUCOUNT = <%sysfunc(getoption(CPUCOUNT, keyword))>;
%put MEMSIZE  = <%sysfunc(getoption(MEMSIZE, keyword))>;
%put SUMSIZE  = <%sysfunc(getoption(SUMSIZE, keyword))>;
%put SORTSIZE = <%sysfunc(getoption(SORTSIZE, keyword))>;
je dois refaire tourner, pour avoir les infos
xav2229 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/01/2011, 16h11   #11
Membre expérimenté
 
Inscription : avril 2009
Messages : 537
Détails du profil
Informations forums :
Inscription : avril 2009
Messages : 537
Points : 540
Points : 540
un run sur un AIX :

CPUCOUNT 2
MEMSIZE 134 217 728
SUMSIZE 0
SORTSIZE 83886080

DATA 19,90
MD5 182,98
SORT 58,81
INDEX 4,76
SUMMARY 2,26
xav2229 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/01/2011, 09h16   #12
Membre expérimenté
 
Inscription : avril 2009
Messages : 537
Détails du profil
Informations forums :
Inscription : avril 2009
Messages : 537
Points : 540
Points : 540
un run sur un autre AIX :

CPUCOUNT 2
MEMSIZE 536 870 912
SUMSIZE 0
SORTSIZE 536 870 912

DATA 48,38
MD5 389,78
SORT 103,37
INDEX 10,54
SUMMARY 1,94
xav2229 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/01/2011, 13h57   #13
Rédacteur
 
Homme Stéphane
Consultant et formateur SAS et Cognos
Inscription : avril 2009
Messages : 1 791
Détails du profil
Informations personnelles :
Nom : Homme Stéphane
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Consultant et formateur SAS et Cognos
Secteur : Conseil

Informations forums :
Inscription : avril 2009
Messages : 1 791
Points : 4 012
Points : 4 012
SAS 9.2 M2
Windows 2008 R2 x64
CPU : Xeon E5530 2.4 Hhz
RAM : 32 GB

STAT=DATA MEASURE=19.94
STAT=MD5 MEASURE=96.55
STAT=SORT MEASURE=42.96
STAT=INDEX MEASURE=6.16
STAT=SUMMARY MEASURE=3.85

CPUCOUNT = <CPUCOUNT=16>
MEMSIZE = <MEMSIZE=1.073.741.824>
SUMSIZE = <SUMSIZE=805.306.368>
SORTSIZE = <SORTSIZE=536.870.912>
__________________
N'oubliez pas de cliquer sur lorsque votre problème est réglé !

Moteur de recherche dans les papiers SAS
datametric est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/02/2011, 15h03   #14
Membre expérimenté
 
Inscription : avril 2009
Messages : 537
Détails du profil
Informations forums :
Inscription : avril 2009
Messages : 537
Points : 540
Points : 540
ca pete sur le sort!

autre collecte:
AIX

CPUCOUNT : 2
MEMSIZE : 536 870 912
SUMSIZE : 0
SORTSIZE : MAX

DATA 20,13
MD5 284,18
SORT 71,19
INDEX 8,89
SUMMARY 1,99
xav2229 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h07.


 
 
 
 
Partenaires

Hébergement Web