Vous êtes sur la page 1sur 61

Comment grer 10 000 bases Progress

Dans un environnement CLOUD

Comment grer 10 000 Bases Progress


1

Proginov

Oprations de bases

Analyse temps rel

Optimisation du Code

Conclusion

Comment grer 10 000 Bases Progress

Quelques mots sur le prsentateur

Dveloppeur Progress depuis 2001


A Proginov depuis 2008
Performances & optim. depuis 2005
Equipe SaaS depuis 2010
pperrot@proginov.com

Patrice Perrot

Comment grer 10 000 Bases Progress

1 Notre
Notre
Mtier Mtier

Editeur depuis 30 ans


33 dveloppeurs ddis au standard Proginov (R&D)

Intgrateur de lERP Proginov


25 chefs de projet et 32 dveloppeurs ddis aux clients Proginov

Hbergeur depuis 2001


20 techniciens systme et R&D en charge du mode hberg ASP

Guichet unique dassistance


20 hotliners en assistance applicative, technique et tlcom 24h/24 et 7j/7

Proprit PROGINOV - Reproduction interdite

Comment grer 10 000 Bases Progress

1 Quelques
Quelques
Chiffres

Chiffres

165 personnes en janvier 2014


Moyenne dge : 36 ans
Turn-over < 1%
85% des salaris sont actionnaires

25
20
15

23,50 M de chiffre daffaires en 2013


3me Prix de la croissance AFDEL 2007 :
+27,2% entre 2005 et 2006
15% investis chaque anne en R&D

9,2

11,7 12,21

14,9 15,9

17,6

19,9

22,5

CA en M

10
5

RN en M
0,32

0,28

0,46

0,70

0,70

0,96 0,86

0
2005 2006 2007 2008 2009 2010 2011 2012

3 200 000 de capital


Augmentation de 166% en 2012 lie lactionnariat
Augmentation de 100% en 2007 lie lactionnariat
Une volont forte : rester indpendant
et fidliser les collaborateurs

Plus de 1 000 clients

Dirigeants
26%

Holding
41%

Salaris
33%

90% des clients en relation directe


En moyenne 30 nouveaux clients par an

Proprit PROGINOV - Reproduction interdite

Comment grer 10 000 Bases Progress

1 Architecture
Architecture
de lERP

de lERP

Proprit PROGINOV - Reproduction interdite

Comment grer 10 000 Bases Progress

1 Cloud : applications
PRESENTATION
PROGINOV

et hbergement

Hbergeur depuis 2001


3 salles machines dans 3 btiments distincts
+ de 500 serveurs
5 groupes lectrognes
Systme anti-feu gnralis
Accs restreint scuris par badge
3 oprateurs tlcom ayant chacun 2 liens
provenant de 2 plateformes rgionales
monitors 7/7 24/24

Statistiques de mars 2013 :


331 clients hbergs
650 sites distants
6 631 utilisateurs sdentaires ou nomades
dclars
189 893 connexions au service dhbergement
dans le mois

Proprit PROGINOV - Reproduction interdite

Comment grer 10 000 Bases Progress

Cloud : applications et hbergement


PORTAIL PROGINOV

Ressources finies et limites


Quels sont les points critiques ?
Disponibilit ? 24/24 7/7 !
Serveurs assez lourdement chargs
Des typologies de bases trs diffrentes sur nos
serveurs de bases

Oprations de Bases

Comment grer 10 000 Bases Progress

Oprations de Bases
Progress Explorer Tools pour 10 000 Bases ?
CA, CA NE MARCHE PAS !!!

10

Comment grer 10 000 Bases Progress

Oprations de Bases
DAN FOREMAN Performance Rule n2
Best performances are usually met with
substantial increase in :
Financial cost (Best servers/Network/Storage system)
Spending more time in system administration
Developing more complex applications

11

Comment grer 10 000 Bases Progress

Oprations de Bases
Comment attnuer la prcdente rgle
Contrler les Accs :
pas seulement qui
mais combien

Agir : o est la priorit


Contrles rguliers et fiables (-n, log, )

12

Comment grer 10 000 Bases Progress

Oprations de Bases

Rechercher partout les


optimisations
Evaluer les meilleurs paramtres de dmarrage des
bases en prenant en compte chaque BDD:
Administration des bases, regarder lactivit de
chaque base
Essayer de diminuer les accs aux bases :
optimisation des programmes
Essayer de diminuer les temps daccs:
administration des BDD, avec les schmas/structures
les meilleurs possibles

13

Comment grer 10 000 Bases Progress

Oprations de Bases

14

Dump & LOAD : travail prparatoire


Record Mean Size
Table Access
Table Size

-> Area
-> Nb record / blocks
-> Nb extend

Comment grer 10 000 Bases Progress

Oprations de Bases

Gnration de la base cible

15

Comment grer 10 000 Bases Progress

Oprations de Bases
Inconvnients dun systme mutualis
Limitation de la machine : principe des vases communicants
CPU et Activit IO : Effet de bord
Avec un grand nombre de bases vient une grande inertie

16

Comment grer 10 000 Bases Progress

Oprations de Bases

10,000 BDD, aidez-moi !


Faire Un BIG-BANG pour toutes les bases est juste
impossible.
Augmenter tous les paramtres de dmarrage pour nos
10 000 BDD serait bien Mais nous navons pas de
serveur magique avec des ressources infinies !

17

Comment grer 10 000 Bases Progress

Oprations de Bases

Notre outil Maison dadministration des


bases de donnes
Point dentre pour le travail doptimisation

18

Comment grer 10 000 Bases Progress

Oprations de Bases

A partir de quelles informations ?


Simplement, juste avec:
DBAnalys
VST :
_ActSummary
_table Stat
_IndexStat
_Connect
Ressources systemes
Logs (Session, db)

19

Comment grer 10 000 Bases Progress

Oprations de Bases

Enregistrement des accs


Tche quotidienne, de 08H 18H
Moyenn sur une semaine de travail
A partir ?
DB : _actsummary,
Tables : crud (_tablestat)

20

Comment grer 10 000 Bases Progress

Oprations de Bases

Utilisation des DBANALYS


Plusieurs DBANALYS chaque nuit
Au moins, un comptage par base par semaine

21

Comment grer 10 000 Bases Progress

Oprations de Bases

22

Utilisation des DBANALYS


- Que cherchons-nous principalement:
- Scatter Factor
- Fragmentation
- %util (index)

- Deux manires de pondrer le rsultat:


- Par le nombre denregistrement
- Par le nombre daccs

Valeur de dsorganisation pour lensemble de la base, sous la forme A/B/C de 0 (OK) 9 (KO):
A : Scatter Factor
B : Split Record
C : %Util

Comment grer 10 000 Bases Progress

Oprations de Bases

Comptage des utilisateurs


Toutes les 30 minutes
Tche Progress (Batch)

23

Comment grer 10 000 Bases Progress

Oprations de Bases

Analyse et aide la dcision


Nous avons beaucoup de chiffres / mesures, mais que peut-on en faire?

Choisir quelles bases rorganiser


Choisir quels paramtres de dmarrage des bases modifier
Cibler les volutions daccs non dsires

24

Comment grer 10 000 Bases Progress

Oprations de Bases

Process daide la dcision

25

Comment grer 10 000 Bases Progress

Oprations de Bases

Paramtres de dmarrage -B
Ressources finies:
si nous augmentons une valeur, laquelle devons-nous diminuer?

26

Comment grer 10 000 Bases Progress

Oprations de Bases

Au sujet de la famille des -M

27

Comment grer 10 000 Bases Progress

Oprations de Bases

Augmentation anormale des lectures

28

Comment grer 10 000 Bases Progress

Oprations de Bases

Dump & Load : A qui le tour ?

29

Comment grer 10 000 Bases Progress

Oprations de Bases

Que faire dautre ?


O mettre/modifier :
B2
-lruskips
-omsize

30

Comment grer 10 000 Bases Progress

Oprations de Bases

-lruskips

-B2

31

Comment grer 10 000 Bases Progress

Oprations de Bases

Mise en place du B2

32

Comment grer 10 000 Bases Progress

Oprations de Bases

Le pass cest bien,


Le prsent cest mieux
Pour savoir ce qui engendre une dgradation
linstant T sur une machine, nous avons besoin
dune vue globale de cette machine, incluant des
informations dtailles et prcises

33

Analyse temps rel

Comment grer 10 000 Bases Progress

Analyse temps rel

Analyse des perfs sur un serveur


Vue globale de son activit

35

Comment grer 10 000 Bases Progress

Analyse temps rel

Informations sur les tables


Informations disponibles :
Nom logique de la base
Nom de la table
CRUDs (_tablestat)
index activit (_indexstat)

Le nombre denregistrement en
base relev lors du dernier
comptage a t ajout

36

Comment grer 10 000 Bases Progress

Analyse temps rel

Informations sur les tables


VST _indexstat : Top index

VST _UserTableStat : Top users

37

Comment grer 10 000 Bases Progress

Analyse temps rel

Information sur les utilisateurs


Mesures de performance :
_UserIO-DbAcces
_UserIO-Dbread
_LockReq-RecLock
_LockReq-TrnLock

38

How to manage 10,000 Progress DB

Analyse temps rel

Dtails pour les utilisateurs


_UsertableStat : Top Tables

Connect  Client Database Request Statement Caching information.

39

Comment grer 10 000 Bases Progress

Analyse temps rel

Attention
Quelques avertissements si vous avez travailler dans ce type de
configuration :

Rcuprer les _usertablestats augmentent les


accs sur la base
Activer les CDR Statement Caching peut
gnrer un grand nombre dIO

40

Optimisation du code

Comment grer 10 000 Bases Progress

Optimisation du code

Nous savons o, mais pas


pourquoi
Deux principaux types de problme de performances :
Trop daccs sur une table
Problme de lenteur dans une fonction
Outils notre disposition:
Analyseur de requte
Compile Xref
A la vole
Sauvegarde en base

Profiler

42

Comment grer 10 000 Bases Progress

Optimisation du code

Analyseur de requte
hQuery:INDEX-INFORMATION,
VST : _index, _index-field, _file, _field

43

Comment grer 10 000 Bases Progress

Optimisation du code

Analyser un programme
Trouvez les diffrences

44

Comment grer 10 000 Bases Progress

Optimisation du code

45

Base de donnes des XREF


Problmes de performances
Non conformit aux rgles internes de dveloppement
Localisation des CRUDs
Pile dappel des programmes

Comment grer 10 000 Bases Progress

Optimisation du code

Localisation des accs

46

Comment grer 10 000 Bases Progress

Optimisation du code

Localisation des CRUDs ?

47

Comment grer 10 000 Bases Progress

Optimisation du code

Non conformits aux rgles de dv.

48

Comment grer 10 000 Bases Progress

Optimisation du code

Pile dappel des programmes

49

Comment grer 10 000 Bases Progress

Optimisation du code

PROFILER
Utilis pour savoir o le temps dexcution est
consomm
Facilement activable et dsactivable
ASSIGN PROFILER:PROFILING = NO
PROFILER:ENABLED = NO
PROFILER:LISTINGS = YES
PROFILER:COVERAGE = YES
PROFILER:TRACE-FILTER = ""
PROFILER:DIRECTORY = SESSION:TEMP-DIR
PROFILER:FILE-NAME = SESSION:TEMP-DIR + "\profile.out"
PROFILER:DESCRIPTION = "".
ASSIGN PROFILER:ENABLED = yes /*No to disable*/
PROFILER:PROFILING = YES /*No to disable*/.

50

Comment grer 10 000 Bases Progress

Optimisation du code

Profiler : temps par procdure

51

Comment grer 10 000 Bases Progress

Optimisation du code

Profiler : temps pass par ligne de code


Si aucune ligne nest disponible: compile [PGM] Debug-List

52

Comment grer 10 000 Bases Progress

Optimisation du code

Profiler : quelques conseils utiles


Ce que nous avons ajout
Contrle des requtes
Visualisation de larborescence des programmes
Copier-Coller
Comparatif de deux mesures
No-lock option (initialement bas Temp-table)
Nouveaux index ajouts sur la base Profiler
Mfiez vous des premiers chargements en mmoire (Disk
Read)

53

Comment grer 10 000 Bases Progress

Optimisation du code

Sniffer : une autre faon dutiliser statement caching

54

Comment grer 10 000 Bases Progress

Optimisation du code

Autres petites choses


Paramtrage du -n
La plus petite valeur possible mais
les volutions possibles

Ajout automatique des extend


Enable Large File est interdit dans notre
Cloud !

55

Comment grer 10 000 Bases Progress

Optimisation du code

Encore un petit truc


Fichier de log des bases : .lg
Automatique prolog
Enregistrement des erreurs (dans une base Progress ddie)

56

Conclusion

Comment grer 10 000 Bases Progress

Conclusion

PROGRESS ne fournit pas doutils ni de conseils pour


grer une telle quantit de bases dans le mme
environnement.
Cest pourquoi nous avons d imaginer et
dvelopper ces outils dadministration et
doptimisation.

58

Comment grer 10 000 Bases Progress

Conclusion

59

Quelques chiffres
Environnement Cloud

Proginov

Plus de 13 000 BDD


Plus de 300 clients hbergs
20 Serveurs de base (IBM AIX)
Environ 150 000 sources
Plusieurs versions standards
Des spcifiques clients pour des besoins
spcifiques

Tches BDD
Problmes de Perf
Tuning paramtres BDD
Dv. doutils BDD

Optimisation sources
D&L
Montes de versions

Employs : 165
Dveloppeurs : 65
Equipe ASP : 13
Administration BDD : 5
Performances : 1
(Patrice!)

Comment grer 10 000 Bases Progress

Conclusion

60

En rsum
Regarder le pass

Accs
Disk reads
DBAnalys
Nb User
XREF

pour construire lavenir


Meilleures performances
pour nos clients
Plus de ractivit et une
administration des bases plus
rapide
Et le PLUS important : limiter
les risques
-> les erreurs peuvent tre
irrcuprables dans un environnement
mutualis

Questions ?

Vous aimerez peut-être aussi