Académique Documents
Professionnel Documents
Culture Documents
la configuration et
l’exploitation de
l’infrastructure
informatique
Sage X3
Stéphane POULON
01 2020
Page 1 de 14
Sommaire
OBJECTIF .............................................................................................................................................. 3
II - VIRTUALISATION ........................................................................................................................... 5
Commentaire
Attention, Important
Voir aussi
Action
Objectif
L’objet de ce document est de présenter un récapitulatif des bonnes pratiques et principales
recommandations techniques à mettre en place pour optimiser les performances de
fonctionnement d’une solution applicative de la gamme Sage X3 :
X3 ERP
X3 PEOPLE
GEODE.
Ces recommandations et bonnes pratiques sont regroupées par élément constituant
l'architecture du système (logiciels et/ou matériels) :
SYSTEME D’EXPLOITATION WINDOWS
VIRTUALISATION
SERVEURS
BASE DE DONNEES SQL SERVER
DOSSIERS X3
L’éditeur Sage peut vous aider à auditer l’infrastructure informatique de vos clients pour la
comparer avec les bonnes pratiques présentées dans ce document afin de mettre en évidence
des axes d’optimisation en vue d’améliorer les performances des applications Sage installées.
Mettre à jour régulièrement des Hot Fix et autres mises à jour de sécurité Windows
II.2 - Réseau
Pour obtenir de meilleures performances en multi-tiers, il est primordial d’utiliser des
adaptateurs réseau virtuelles de type "VMXnet3" (et non de type "E1000") sachant que
"Vmware Tools" doit être installé et à jour sur les machines virtuelles (>= 10.0).
Le réseau physique (backbone) auxquels sont reliés les systèmes hôtes ESX doit être
impérativement en 10 Gigabit.
III.5 - Défragmentation
Lancer régulièrement les mécanismes d’optimisation et/ou de défragmentation des volumes
disques. Lors que l’exécution de ces fonctions il est recommandé d’arrêter les services de
base de données.
Chaque semaine nous conseillons d’épurer le contenu des tables temporaires suivantes :
o ALISTER
o AREPORTM
o ATMPTRA
Vérifier régulièrement s’il n’y a pas de défaillance d’index via la fonction prévue à cet effet
Développement> Utilitaires> Vérifications> Base de données> Recherche index et si besoin
procéder à une validation forcée des tables en défaut
Procéder aux épurations nécessaires dans les différents répertoires des serveurs Sage pour
libérer un maximum d’espace disque dans les répertoires : TRA, TMP, Logs, Temp, etc.
Surveillance des verrous des tables de la base de données. Selon les informations relevées
il conviendra dans un premier temps, de valider de manière forcée certaines tables (opération
à réaliser lorsque tous les utilisateurs sont déconnectés). Si des blocages se reproduisent, il
faudra déclarer certains index en mode cluster et si besoin abaisser le taux de remplissage
de ces index.
Adapter Les valeurs minimales et maximales de mémoire pour l’instance SQL Server en
fonction de la quantité de mémoire physique RAM présente sur le serveur et prévue pour le
moteur de base de données. Nos recommandations en la matière sont les suivantes :
a) Allouer en mémoire physique RAM pour l’instance SQL Server de production 15 à 25%
de la taille des fichiers de données (DATA+INDEX)
25% si DATA + INDEX > 30 Go
20% si DATA + INDEX > 80 Go
15% si DATA + INDEX > 150Go
b) Dimensionner la taille du Journal des Transactions de l’instance SQL Server de
production à 50% de la taille des fichiers de données (DATA+INDEX)
c) Dimensionner la taille de la base Tempdb de l’instance SQL Server de production à 25%
de la taille des fichiers de données (DATA+INDEX)
Le moteur SQL Server peut faire exécuter une requête coûteuse par plusieurs processeurs de
la machine sur laquelle il est installé, ce qui permet en principe de diminuer le temps
d'exécution de la requête. Le paramètre degré maximum de parallélisme 'max degree of
parallelism' gère ce fonctionnement. La valeur doit être comprise entre 0 et 8. La valeur à 0
(par défaut), signifie que l’on autorise SQL à exploiter tous les processeurs, ce qui peut amener
une saturation de la CPU. Pour éviter ce phénomène, nous recommandons de ne pas
dépasser la moitié du nombre de cœur
Afin de permettre à l’instance SQL Server d’avoir toujours accès directement à ses pages de
données résidante en mémoire physique, plutôt qu’en mémoire paginée dans le fichier
d’échange sur disque, l’activation du « Lock Pages In Memory » peut s’avérer bénéfique.
Activer l’option SQL "Optimiser les charges de travail ad hoc" afin de conserver le plan
d'exécution en cache uniquement pour les requêtes réexécutées et améliorer ainsi l’efficacité
du plan de cache SQL
o Pour rappel, SQL Server maintient un cache de plans d’exécution permettant à
l'optimiseur SQL de ne pas procéder à une nouvelle analyse pour déterminer le plan
d'exécution dès la deuxième exécution d'une requête SQL
o Ce principe est valable aussi bien pour les procédures stockées que pour les requêtes
"ad-hoc" c’est-à-dire celles qui sont générées dans le code de l’application avec des
valeurs littérales
o L'option "optimize for adhoc workloads" au niveau instance modifie le comportement
de SQL Server de la manière suivante : lorsqu’un plan de requête ad-hoc est calculé,
il n’est plus directement stocké dans le cache mais sous forme d'un plan compilé (stub)
qui permettra de l'identifier lors de la prochaine exécution. Si le même plan doit être
calculé une deuxième fois, il sera cette fois gardé en cache
Pour des performances optimales l’éditeur SAGE recommande que l’instance SQL Server
propriétaire des bases master et tempdb soit dans la même collation que la base de données
de l’application X3 -> Latin1_General_BIN
A noter : ne pas prévoir de Shrink de la base de données, c’est contre performant car on
essaie de réduire les bases dont les fichiers sont par nature en croissance automatique
Collecter quotidiennement manuellement les statistiques sur les tables, index et colonnes
(histogrammes) pour l’ensemble des schémas applicatifs afin de conserver des performances
optimales :
Exemple :
begin
dbms_stats.gather_schema_stats(
ownname => 'DEMO',
estimate_percent => dbms_stats.auto_sample_size,
method_opt => 'for all columns size auto',
cascade => true,
degree => 4);
end;
/
Libellé Valeur
AUDIT_FILE_DEST /home/oracle/admin/<SID>/adump
AUDIT_TRAIL DB
DB_NAME X3PROD
INSTANCE_NAME X3PROD
COMPATIBLE (Selon la version d’X3)
DB_BLOCK_SIZE 8192
DB_FILES 50
CHARACTER_SET AL32UTF8
DIAGNOSTIC_DEST /opt/oracle
LOG_BUFFER 524288
MAX_DUMP_FILE_SIZE 10240
MEMORY_MAX_TARGET 20G (à ajuster)
MEMORY_TARGET 16G (à ajuster)
NBR_SORT BINARY
OPTIMIZER_INDEX_CACHING 0
OPTIMIZER_INDEX_COST_ADJ 100
OPTIMIZER_MODE
ALL_ROWS
(first_rows_n[1,10,100 ou 1000]/ first_rows/all_rows)
OPEN_CURSORS (nombre curseurs) 300
PGA_AGGREGATE_LIMIT 5G